HDFS 将多个Avro文件从pyspark写入同一目录

bkhjykvo  于 2023-02-06  发布在  HDFS
关注(0)|答案(1)|浏览(236)

我尝试将 Dataframe 作为Avro文件从PySpark Dataframe 写入HDFS的路径/my/path/,并按col“partition”进行分区,因此在/my/path/下,应该有以下子目录结构

partition= 20230101
partition= 20230102
....

在这些子目录下,应该有avro文件。我正在尝试使用

df1.select("partition","name","id").write.partitionBy("partition").format("avro").save("/my/path/")

它第一次使用成功,但是当我尝试用新分区写入另一个df时,它失败了,错误为:path /my/path/已经存在,如何实现呢?非常感谢您的帮助,df格式如下:

partition  name   id 
20230101.   aa.   10 ---this row is the content in the first df
20230102.   bb.   20 ---this row is the content in the second df
wh6knrhe

wh6knrhe1#

您应该更改SaveMode。默认保存模式为ErrorIfExists,因此您将得到一个错误。请将其更改为附加模式。

df1.select("partition","name","id") \
  .write.mode("append").format("avro")\
  .partitionBy("partition").save("/my/path/")

相关问题