我有一个用例,我需要将输出作为一个单独的文件写入现有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/