从 Pyspark 中的多个目录读取 parquet 文件

2024-03-27

我需要从不是父目录或子目录的多个路径读取镶木地板文件。

例如,

dir1 ---
       |
       ------- dir1_1
       |
       ------- dir1_2
dir2 ---
       |
       ------- dir2_1
       |
       ------- dir2_2

sqlContext.read.parquet(dir1)从 dir1_1 和 dir1_2 读取镶木地板文件

现在我正在读取每个目录并使用“unionAll”合并数据帧。 有没有办法从 dir1_2 和 dir2_1 读取镶木地板文件而不使用unionAll或者有什么奇特的方式使用unionAll

Thanks


有点晚了,但我在搜索时发现了这个,它可能对其他人有帮助......

您也可以尝试将参数列表解压缩为spark.read.parquet()

paths=['foo','bar']
df=spark.read.parquet(*paths)

如果您想将一些 blob 传递到路径参数中,这很方便:

basePath='s3://bucket/'
paths=['s3://bucket/partition_value1=*/partition_value2=2017-04-*',
       's3://bucket/partition_value1=*/partition_value2=2017-05-*'
      ]
df=spark.read.option("basePath",basePath).parquet(*paths)

这很酷,因为您不需要列出基本路径中的所有文件,并且您仍然可以获得分区推断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Pyspark 中的多个目录读取 parquet 文件 的相关文章

随机推荐