使用pyspark将多个csv文件合并到Azure Blob存储中的一个csv文件

时间:2019-08-19 21:42:19

标签: azure pyspark azure-blob-storage azure-databricks

我正在使用以下代码将csv文件保存回blob存储,尽管它在循环运行时会创建多个文件。现在,我想将它们合并到一个单独的csv文件中。虽然我使用过dbutils.fs.cp / mv,但这没有帮助

while start_date <= end_date:
df = spark.read.format("com.databricks.spark.csv").options(header="true", inferschema="true").load(inputFilePath)
df.coalesce(1).write.mode("append").option("header","true").format("com.databricks.s`park.csv").save(TargetPath)`

下面已经发布了类似的请求,但已使用pandas数据框完成了,而我正在寻找spark数据框。 “ Copy data from multiple csv files into one csv file

1 个答案:

答案 0 :(得分:0)

我的建议是,使用while循环创建要读取的csv文件列表,然后使用spark csv阅读器一次读取所有文件。例如:

files = []
while start_date <= end_date:
    files.append(inputFilePath)


df = spark.read.format("com.databricks.spark.csv").options(header="true", inferschema="true").csv(files)

df.coalesce(1).write.mode("append").option("header","true").format("com.databricks.spark.csv").save(TargetPath)