[英]Read files from multiple folders from ADLS gen2 storage via databricks and create single target file
我正在使用数据块服务进行分析。 我已经建立了与 ADLS gen2 存储的连接并创建了一个挂载点,现在该容器包含多个文件夹,并且每个月文件夹中都有每个月的镶木地板文件。 我必须阅读所有这些文件并创建一个包含完整月份数据的目标文件。 我如何实现它任何人都可以建议?
假设您的镶木地板文件遵循特定的目录模式,您可以使用通配符。
如果您的文件以/mnt/point/folder/YYYY/MM/foo.parquet
这样的模式编写,您可以使用/mnt/point/folder/*/*
遍历所有 YYYY 和 MM 文件夹和文件
这是一个可重现的 pyspark 示例,假设您有一个名为“data”的挂载点。
df_A = spark.createDataFrame([
['a',1],
['a',2],
['a',3]
], ["Letter", "Number"])
df_B = spark.createDataFrame([
['b',1],
['b',2],
['b',3]
], ["Letter", "Number"])
df_A.write.parquet('/mnt/data/mydata/1999/01')
df_B.write.parquet('/mnt/data/mydata/2001/09')
new_df = spark.read.parquet('/mnt/data/mydata/*/*')
根据@Alex Ott 的评论,如果您的数据已分区(例如,有一个名为 year=1999 的文件夹和名为 month=01、month=02 等的子文件夹),您可以利用分区发现,并且 spark 会更智能地意识到它应该遍历所有子文件夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.