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

Apache spark 从本地二进制文件保存并加载Spark RDD-最简单的工作示例,apache-spark,hdfs,rdd,Apache Spark,Hdfs,Rdd,我正在开发一个Spark应用程序,其中首先计算RDD,然后需要将其存储到磁盘,然后再次加载到Spark中。为此,我正在寻找一个将RDD保存到本地文件然后加载它的最小工作示例 文件格式不适合文本转换,因此saveAsTextFile将无法运行 RDD可以是普通RDD,也可以是成对RDD,这并不重要。文件格式可以是HDFS,也可以不是HDFS 示例可以是Java或Scala 谢谢 只要RDD中的值是可序列化的,就可以尝试使用RDD.saveAsObjectFile/SparkContext.obje

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

文件格式不适合文本转换,因此
saveAsTextFile
将无法运行

RDD可以是普通RDD,也可以是成对RDD,这并不重要。文件格式可以是HDFS,也可以不是HDFS

示例可以是Java或Scala


谢谢

只要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")

您试图保存的RDD是什么类型的?为了简单起见,让我们假设一对整数,我甚至无法让它工作。稍后,一对整数和一些可序列化对象。