从本地二进制文件保存并加载Spark RDD - 最小的工作示例

时间:2015-09-16 14:53:40

标签: apache-spark hdfs rdd

我正在开发一个Spark应用程序,其中首先计算RDD,然后需要存储到磁盘,然后再次加载到Spark。为此,我正在寻找一个将RDD保存到本地文件然后加载它的最小工作示例。

文件格式不适合文字转换,因此saveAsTextFile不会飞。

RDD可以是普通RDD或配对RDD,但并不重要。文件格式可以是HDFS,也可以不是。

示例可以是Java或Scala。

谢谢!

1 个答案:

答案 0 :(得分:2)

只要RDD中的值可序列化,您就可以尝试使用RDD.saveAsObjectFile / SparkContext.objectFile

case class Foobar(foo: Int, bar: Map[String, Int])
val rdd = sc.parallelize(Seq(
    Foobar(1, Map("foo" -> 0)),
    Foobar(-1, Map("bar" -> 3))
))

rdd.saveAsObjectFile("foobar")
sc.objectFile[Foobar]("foobar")