apache-spark - 如何使用Spark将输出作为单独的文件写入现有HDFS目录下?

标签 apache-spark hadoop hdfs

我有一个用例,我需要将输出作为一个单独的文件写入现有HDFS目录下。当我使用sparkContext.saveAsHadoopFile()方法时,抛出异常,表明输出目录已经存在。目前,我可以使用Hadoop客户端库执行此操作,并将其作为Spark的任务启动,下面是代码示例代码段。我想知道我们是否可以使用Spark的库函数来完成这项工作?
使用标准Hadoop客户端库进行编码。

val hdfs = FileSystem.get(getHDFSConfiguration(hadoopConf))
val outputFile = new Path(newPath)

hdfs.createNewFile(outputFile)

hdfs.append(outputFile)
      .writeBytes(content)
Spark版本:2.3.x

最佳答案

如果您使用的Hadoop版本> 0.20.0,则可以在hdfs-site.xml中设置此属性。

<property>
   <name>dfs.support.append</name>
   <value>true</value>
</property>
然后可以使用FileSystem的.append将数据添加到现有数据路径中。

关于apache-spark - 如何使用Spark将输出作为单独的文件写入现有HDFS目录下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62874783/

相关文章:

dataframe - 如何在 Spark Dataframe 中显示完整的列内容?

java - maven本地缓存错误

algorithm - 使用 MapReduce 进行深度优先搜索

hadoop - MapReduce内部加入?

apache-spark - Spark 纱:问的容器太多

hadoop - Google Compute Engine 问题上的 Spark SQL

python - 如何使用 pyspark 启动独立集群?

hadoop - Hadoop性能基准

hadoop - SPSS Modeler,Hadoop

amazon-ec2 - AWS 弹性 map 上的加入性能减少运行配置单元