使用 pyspark 迭代加载多个镶木地板文件

Loading multiple parquet files iteratively using pyspark

我寻找了类似的例子,但它们在路径中都有一个特定的字符串,最后是数字,因此能够迭代地执行 for 循环。 我的场景如下: 我在多个分区中有多个镶木地板文件,其路径如下: s3a://path/idate=2019-09-16/part-{some random hex key1}.snappy.parquet s3a://path/idate=2019-09-16/part-{some random hex key2}.snappy.parquet etc...{some random hex key} 显然不可预测,因此我无法在迭代代码定义中创建规则。 我想要一个 for 循环,例如:

files="s3a://path/idate=2019-09-16/" 
for i in files
block{i}=spark.read.parquet(i)

其中 block{i}block1block2 等,并且是将从 s3a://path/idate=2019-09-16/part-{some random hex **key1,2, etc**..}.snappy.parquet

创建的迭代数据帧

这可能吗?

您可以阅读 files="s3a://path/idate=2019-09-16/" 中的所有文件,使用 df = spark.read.parquet(files)