1. 代码:
package spark.examples.fileformat import org.apache.spark.{SparkConf, SparkContext} object SequenceFileTest { def main(args: Array[String]) { val conf = new SparkConf() conf.setAppName("SequenceFileTest") conf.setMaster("local[3]") val sc = new SparkContext(conf) val data = List(("ABC", 1), ("BCD", 2), ("CDE", 3), ("DEF", 4), ("FGH", 5)) val rdd = sc.parallelize(data, 1) val dir = "file:///D:/sequenceFile-" + System.currentTimeMillis() rdd.saveAsSequenceFile(dir) val rdd2 = sc.sequenceFile[String, Int](dir + "/part-00000") println(rdd2.collect().map(elem => (elem._1 + ", " + elem._2)).toList) } }
2. SequenceFile的内容:
3.注意:
saveAsSequenceFile是SequenceFileRDDFunctions定义的方法,但是在上面的代码中并没有显式的指定隐式转换,原因是上面的代码运行于Spark1.3中,在SparkContext中有如下的注释解释了这种行为
// The following implicit functions were in SparkContext before 1.3 and users had to // `import SparkContext._` to enable them. Now we move them here to make the compiler find // them automatically. However, we still keep the old functions in SparkContext for backward // compatibility and forward to the following functions directly. implicit def intWritableConverter(): WritableConverter[Int] = simpleWritableConverter[Int, IntWritable](_.get) implicit def longWritableConverter(): WritableConverter[Long] = simpleWritableConverter[Long, LongWritable](_.get) implicit def doubleWritableConverter(): WritableConverter[Double] = simpleWritableConverter[Double, DoubleWritable](_.get) implicit def floatWritableConverter(): WritableConverter[Float] = simpleWritableConverter[Float, FloatWritable](_.get) implicit def booleanWritableConverter(): WritableConverter[Boolean] = simpleWritableConverter[Boolean, BooleanWritable](_.get) implicit def bytesWritableConverter(): WritableConverter[Array[Byte]] = { simpleWritableConverter[Array[Byte], BytesWritable] { bw => // getBytes method returns array which is longer then data to be returned Arrays.copyOfRange(bw.getBytes, 0, bw.getLength) } } implicit def stringWritableConverter(): WritableConverter[String] = simpleWritableConverter[String, Text](_.toString) implicit def writableWritableConverter[T <: Writable](): WritableConverter[T] = new WritableConverter[T](_.runtimeClass.asInstanceOf[Class[T]], _.asInstanceOf[T]) }
而SequenceFileRDDFunctions是针对KV都是继承自Writable的PairRDD
/** * Extra functions available on RDDs of (key, value) pairs to create a Hadoop SequenceFile, * through an implicit conversion. Note that this can't be part of PairRDDFunctions because * we need more implicit parameters to convert our keys and values to Writable. * */ class SequenceFileRDDFunctions[K <% Writable: ClassTag, V <% Writable : ClassTag]( self: RDD[(K, V)], _keyWritableClass: Class[_ <: Writable], _valueWritableClass: Class[_ <: Writable]) extends Logging with Serializable {
相关推荐
5. **后续处理**:在HDFS上,可以进一步使用MapReduce或Spark等计算框架对Sequence File进行分析和处理。 通过这种方式,我们可以有效地应对小文件过多的问题,同时利用Redis的高速缓存能力优化数据流动,最后通过...
4. **Sequence File** - Hadoop中的二进制格式,支持键值对存储,可进行record和block级别的压缩,常作为中间数据格式。 5. **Avro File** - 由Apache Avro提供,具有语言无关性,支持schema演化,适用于频繁写入...
内容概要:本文介绍了一款适用于三菱伺服电机J2/J2S/J3/J4系列的编码器ID修改器。该工具作为一款独立系统,配备有硬件驱动程序和应用软件,支持读写ID、实时读取绝对位置以及调零等功能。文中详细描述了产品的功能特点、使用教程和代码片段,旨在帮助用户更好地理解和使用这一工具。三菱伺服电机以其稳定性和可靠性广泛应用于工业自动化和机器人技术领域,因此这款修改器为电机调试和维护提供了极大便利。 适合人群:从事工业自动化、机器人技术和机电一体化领域的工程师和技术人员。 使用场景及目标:① 在电机调试、更换电机或其他需要修改电机ID的场合下使用;② 实现对编码器绝对位置的实时监控;③ 提供精准的位置控制,确保电机运动轨迹的准确性。 其他说明:附带详细的使用教程,适合从初学者到经验丰富的工程师快速上手。同时展示了简单的代码片段,便于用户理解具体的操作流程。
内容概要:本文深入探讨了赛灵思FPGA与CMV2000音频视频处理芯片之间的匹配技术。首先介绍了CMV2000的功能特性及其在通信领域的应用,随后从硬件架构、接口和功能需求三个方面详细分析了两者匹配的关键点。接着讨论了用于设计和验证的技术手段,如设计软件、仿真和测试方法。最后通过具体案例展示了这种匹配技术的实际应用效果,强调了其在提高系统稳定性和数据处理能力方面的重要作用。 适合人群:从事FPGA设计、音频视频处理以及相关通信设备开发的专业技术人员。 使用场景及目标:帮助工程师理解和掌握赛灵思FPGA与CMV2000的匹配方法,以便于在实际项目中优化系统性能并提升可靠性。 其他说明:文中提到的技术细节对于希望深入了解FPGA与特定芯片集成的应用开发者非常有价值。
单片机的总线与系统扩展.pptx
PLM产品生命周期管理解析.pdf
单片机课程设计任务书模板.doc
Altair产品介绍——solidThinking Inspire.pdf
商场综合布线方案.doc
吉林省求实计价软件使用说明书.doc
内容概要:本文详细介绍了如何利用MATLAB实现主成分回归(PCR)预测的方法。主要内容涵盖了一个名为'main'的主程序,它能够读取EXCEL格式的数据文件,并将其分为输入和输出两部分,进而完成主成分回归分析。文中不仅提供了完整的代码片段,还对每个步骤进行了详细的解释,如数据读取、分割以及调用PCR函数进行回归分析等。此外,作者强调了代码的灵活性,允许用户根据自己的数据集进行相应的修改,使得整个过程更加简便易懂。 适合人群:对于有一定MATLAB基础并且想要快速掌握PCR方法的研究人员或者学生。 使用场景及目标:适用于需要从大量多维数据中提取关键特征并建立预测模型的情况。通过本篇文章的学习,读者可以学会如何正确导入外部数据源到MATLAB环境中,理解PCR的基本原理及其应用场景,最终达到独立构建简单但有效的预测系统的目的。 阅读建议:由于本文侧重于实践操作而非理论推导,在阅读时应重点关注具体的编码技巧和参数设置,同时尝试跟随教程运行示例代码,以便加深理解和记忆。
单片机课程设计报告书波形发生器.doc
Pro-E三维制图规范.pdf
基于easyx和c++的可视化职工信息管理系统源码个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕业设计、大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于easyx和c++的可视化职工信息管理系统源码基于ea
涨点神器:基于Yolov8小目标遮挡物性能提升(SEAM、MultiSEAM)_seam 遮挡-CSDN博客.mhtml
医院无线网络建设项目实施规划及工艺.doc
IBM Storwize V5000F.pdf
基于声表面波回波信号解调方法研究.zip
双代号网络图.pptx
历年河南城建学院计算机科学与技术毕业设计选题表.doc