7.3 读写 SequenceFile 文件
SequenceFile 文件是 Hadoop 用来存储二进制形式的 key-value 对而设计的一种平面文件(Flat File)。
Spark 有专门用来读取 SequenceFile 的接口。在 SparkContext 中,可以调用 sequenceFile[ keyClass, valueClass](path)
。
注意:
先保存一个 SequenceFile 文件
scala> val rdd1 = sc.parallelize(Array(("a", 1),("b", 2),("c", 3)))
rdd1: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[13] at parallelize at <console>:25
scala> rdd1.saveAsSequenceFile("hdfs://hadoop201:9000/seqFiles")
读取 SequenceFile 文件
scala> val rdd1 = sc.sequenceFile[String, Int]("hdfs://hadoop201:9000/seqFiles")
rdd1: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[18] at sequenceFile at <console>:25
scala> rdd1.collect
res4: Array[(String, Int)] = Array((a,1), (b,2), (c,3))