【问题标题】:Find out target csv file name for a Spark DataFrame.write.csv() call找出 Spark DataFrame.write.csv() 调用的目标 csv 文件名
【发布时间】:2021-09-29 07:30:37
【问题描述】:
在我执行此操作时的 pyspark 会话中:
df = spark.read.parquet(file)
df.write.csv('output')
它会创建一个名为 output 的目录,其中包含一堆文件,其中一个是一个名称不可预测的目标 csv 文件,例如:part-00006-80ba8022-33cb-4478-aab3-29f08efc160a-c000.csv
有没有办法知道.csv() 调用后的输出文件名是什么?
【问题讨论】:
标签:
apache-spark
hadoop
pyspark
【解决方案1】:
当您在数据框中读取 parquet 文件时,它会有一些分区,因为我们在这里使用分布式存储。同样,当您将该数据帧保存为 csv 文件时,它会根据数据帧的分区数以分布式方式保存。
您在编写 csv 文件时提供的路径将创建一个具有该名称的文件夹,然后您将在该文件夹中拥有多个分区文件。每个文件都有一部分数据,当您组合所有分区文件时,您将获得 csv 文件的全部内容。
此外,如果您阅读该文件夹路径,那么您将能够看到 csv 文件的全部内容。这是 spark 和分布式计算工作方式的默认行为。