Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何使用saveAsNewAPIHadoopFile spark scala将文件保存在同一目录中_Apache Spark_Spark Streaming_Avro_Hadoop2 - Fatal编程技术网

Apache spark 如何使用saveAsNewAPIHadoopFile spark scala将文件保存在同一目录中

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(

我正在使用spark streaming,我想将每批spark streaming以Avro格式保存在我的本地服务器上。我使用了
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:-将文件从移动到
这肯定会解决你现在的问题。如果我能一步而不是两步完成这个场景,我将分享我的想法

希望这是有帮助的