使用 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}
是 block1
、block2
等,并且是将从 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)
。
我寻找了类似的例子,但它们在路径中都有一个特定的字符串,最后是数字,因此能够迭代地执行 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}
是 block1
、block2
等,并且是将从 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)
。