我正在使用Spark Streaming,我想将每批Spark Streaming以Avro格式保存在本地。我已使用saveAsNewAPIHadoopFile
将数据保存为Avro格式。这很好。但是它将覆盖现有文件。下一批数据将覆盖旧数据。有什么方法可以将Avro文件保存在公共目录中?我尝试通过添加Hadoop作业conf的一些属性来尝试在文件名中添加前缀。但无法使用任何属性。
dstream.foreachRDD {
rdd.saveAsNewAPIHadoopFile(
path,
classOf[AvroKey[T]],
classOf[NullWritable],
classOf[AvroKeyOutputFormat[T]],
job.getConfiguration()
)
}
答案 0 :(得分:0)
尝试一下-
您可以将过程分为2个步骤:
Step-01 :- Write Avro file using saveAsNewAPIHadoopFile to <temp-path>
Step-02 :- Move file from <temp-path> to <actual-target-path>
这肯定会解决您的问题。如果能一步一步完成此方案,我会分享自己的想法。
希望这会有所帮助。