【问题标题】:Save and load Spark RDD from local binary file - minimal working example从本地二进制文件保存和加载 Spark RDD - 最小的工作示例
【发布时间】:2015-12-13 05:52:50
【问题描述】:

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

文件格式不适合文本转换,所以saveAsTextFile不会飞。

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

示例可以是 Java 或 Scala。

谢谢!

【问题讨论】:

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

标签: apache-spark hdfs rdd


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 2015-09-12
    • 1970-01-01
    • 2017-03-06
    • 2015-09-23
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多