gpt4 book ai didi

hadoop - Spark-在EMR上saveAsTextFile不会将数据写入本地目录

转载 作者:行者123 更新时间:2023-12-02 21:36:30 26 4
gpt4 key购买 nike

在EMR(AMI 3.8)上运行Spark。尝试将RDD写入本地文件时,名称/主节点上没有任何结果。

在我以前的EMR集群(与Bootstrap脚本安装而不是作为EMR附加组件的相同版本的Spark)上,数据将写入名称节点上的本地目录。现在,我可以看到它出现在集群中其他节点上的“/ home / hadoop / test / _temporary / 0 / task *”目录中,但仅出现在主节点上的“SUCCESS”文件中。

如何获取仅写入名称/主节点的文件?

这是我正在使用的命令的示例:

myRDD.saveAsTextFile("file:///home/hadoop/test")

最佳答案

我可以通过首先推送到HDFS,然后使用shell命令将结果写入本地文件系统来全面解决此问题。但我很想听听其他人是否有更优雅的方法。

  //rdd to local text file
def rddToFile(rdd: RDD[_], filePath: String) = {

//setting up bash commands
val createFileStr = "hadoop fs -cat " + filePath + "/part* > " + filePath
val removeDirStr = "hadoop fs -rm -r " + filePath

//rm dir in case exists
Process(Seq("bash", "-c", removeDirStr)) !

//save data to HDFS
rdd.saveAsTextFile(filePath)

//write data to local file
Process(Seq("bash", "-c", createFileStr)) !

//rm HDFS dir
Process(Seq("bash", "-c", removeDirStr)) !

}

关于hadoop - Spark-在EMR上saveAsTextFile不会将数据写入本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31843852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com