如何在火花中使用`saveATextFile`保存`wholeTextFile` RDD的结果?
Posted
技术标签:
【中文标题】如何在火花中使用`saveATextFile`保存`wholeTextFile` RDD的结果?【英文标题】:How to save results from `wholeTextFile` RDD using `saveATextFile` in spark? 【发布时间】:2015-11-30 21:46:49 【问题描述】:我在wholeTextFile
RDD 中使用 spark 在 HDFS 中创建了许多文件,我希望能够使用
anRDD.saveAsTextFile(<directory_path>)
这样做的问题是它会尝试创建一个全新的目录。我只想将这些结果放在现有目录中。我该怎么做呢?
我查看了文档here,但path
参数似乎没有任何改变。
谢谢。
【问题讨论】:
【参考方案1】:你有几个选择:
滚动您自己的 saveAsTextFile
实现,它不会检查输出目录是否已经存在。
写入临时文件夹,然后将文件移动到现有目录。
RDD.saveAsTextFile
使用 TextOutputFormat
,一个 Hadoop OutputFormat
,来写入结果。如果您查看TextOutputFormat
及其基类FileOutputFormat
的实现,则没有覆盖或附加到现有目录的选项。这是有道理的,因为它需要为每个输出部分提供唯一的文件名。
【讨论】:
这对我来说没有意义,因为HIVE
表通过在特定表的目录中创建许多不同名称的文件来工作。所以如果HIVE
可以做到,为什么不hadoop
?如果hadoop
那么为什么不spark
?
Hive 有额外的逻辑来处理这个用例。 Hadoop 和 Spark 没有。这不是can
或can't
的问题,只是实现与否。以上是关于如何在火花中使用`saveATextFile`保存`wholeTextFile` RDD的结果?的主要内容,如果未能解决你的问题,请参考以下文章