如何将 RDD 保存到 HDFS 中并稍后将其读回?

2024-03-12

我有一个 RDD,其元素类型为(Long、String)。由于某种原因,我想将整个 RDD 保存到 HDFS 中,然后在 Spark 程序中读回该 RDD。可以这样做吗?如果是这样,怎么办?


有可能的。

在RDD中你有saveAsObjectFile and saveAsTextFile功能。元组存储为(value1, value2),以便您稍后可以解析它。

阅读可以通过textFile来自 SparkContext 的函数,然后.map消除()

所以: 版本1:

rdd.saveAsTextFile ("hdfs:///test1/");
// later, in other program
val newRdds = sparkContext.textFile("hdfs:///test1/part-*").map (x => {
    // here remove () and parse long / strings
})

版本2:

rdd.saveAsObjectFile ("hdfs:///test1/");
// later, in other program - watch, you have tuples out of the box :)
val newRdds = sparkContext.sc.sequenceFile("hdfs:///test1/part-*", classOf[Long], classOf[String])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 RDD 保存到 HDFS 中并稍后将其读回? 的相关文章

随机推荐