Apache spark 如何使用saveAsNewAPIHadoopFile spark scala将文件保存在同一目录中
我正在使用spark streaming,我想将每批spark streaming以Avro格式保存在我的本地服务器上。我使用了Apache spark 如何使用saveAsNewAPIHadoopFile spark scala将文件保存在同一目录中,apache-spark,spark-streaming,avro,hadoop2,Apache Spark,Spark Streaming,Avro,Hadoop2,我正在使用spark streaming,我想将每批spark streaming以Avro格式保存在我的本地服务器上。我使用了saveAsNewAPIHadoopFile以Avro格式保存数据。这很有效。但它会覆盖现有文件。下一批数据将覆盖旧数据。有没有办法将Avro文件保存在公共目录中?我尝试添加Hadoop job conf的一些属性,以便在文件名中添加前缀。但不工作的任何属性 dstream.foreachRDD { rdd.saveAsNewAPIHadoopFile(
saveAsNewAPIHadoopFile
以Avro格式保存数据。这很有效。但它会覆盖现有文件。下一批数据将覆盖旧数据。有没有办法将Avro文件保存在公共目录中?我尝试添加Hadoop job conf的一些属性,以便在文件名中添加前缀。但不工作的任何属性
dstream.foreachRDD {
rdd.saveAsNewAPIHadoopFile(
path,
classOf[AvroKey[T]],
classOf[NullWritable],
classOf[AvroKeyOutputFormat[T]],
job.getConfiguration()
)
}
试试这个-
您可以将流程分为两个步骤:
Step-01 :- Write Avro file using saveAsNewAPIHadoopFile to <temp-path>
Step-02 :- Move file from <temp-path> to <actual-target-path>
Step-01:-使用saveAsNewAPIHadoopFile将Avro文件写入
步骤02:-将文件从移动到
这肯定会解决你现在的问题。如果我能一步而不是两步完成这个场景,我将分享我的想法
希望这是有帮助的