返回 导航

Spark

hangge.com

Spark - RDD使用详解9(文件的读取与保存:text、sequence、object)

作者:hangge | 2023-10-23 09:00

十二、文件的读取与保存

1,读取与保存文本文件

(1)使用 textFile 方法可以从本地文件系统或者分布式文件系统(HDFS)上读取文本文件,该方法返回一个 RDD 对象,其中每个元素是文件中的一行文本。
val rdd: RDD[String] = sc.textFile("datas/word.txt")
rdd.collect().foreach(println)

(2)使用 saveAsTextFile 方法可以将 RDD 数据以 text 文本的方式保存到文件系统中:
val rdd = sc.makeRDD(List(1,2,3,4,5,6,7,8,9,10,11,12,13))
rdd.saveAsTextFile("output")

2,读取与保存 sequence 文件

(1)SequenceFile 文件是 Hadoop 用来存储二进制形式的 key-value 对而设计的一种平面文件(Flat File)。使用 saveAsSequenceFile 方法可以将 RDD 以 SequenceFile 文件格式保存在 HDFS 上:
val rdd = sc.makeRDD(Array((1,"a"),(2,"b"),(3,"c"),(4,"d"),(5,"e")))
rdd.saveAsSequenceFile("output")
  
(2)使用 sequenceFile 方法则可读取 Sequence 文件,该方法返回一个 RDD 对象:
val rdd = sc.sequenceFile[Int, String]("output")
rdd.collect().foreach(println)

3,读取与保存 object 对象文件

(1)对象文件是将对象序列化后保存的文件,采用 Java 的序列化机制。可以使用 saveAsObjectFile 方法将 RDD 以序列化对象的格式保存到指定路径:
val rdd = sc.makeRDD(Array((1,"a"),(2,"b"),(3,"c"),(4,"d"),(5,"e")))
rdd.saveAsObjectFile("output")

(2)使用 objectFile 方法可以读取对象文件,返回对应的 RDD
val rdd = sc.objectFile[(Int, String)]("output")
rdd.collect().foreach(println)
评论

全部评论(0)

回到顶部