1

有没有一种方法可以一次将多个文件加载到 pyspark 数据框(2.0.0)中。这些文件存在于不同的目录中。或者我可以这样说,我有一个文件存储在 S3 中,分区为天序列数字(20161109),我想加载特定日期的数据(不是文件夹内的所有文件)。一个一个地加载并做 unionAll 效率不高(我相信)。有没有更好的办法?

4

1 回答 1

0

您可以通过两种方式实现此目的:

1) 将所有目录重命名为pattern field=value,例如day=20161109day=20161110以此类推。然后spark.read在父目录上使用,该day字段将显示为额外的列,您可以where像这样使用它:spark.read.parquet('/path/to/parent/dir').where(col('day').between('20161109', '20161110')

2) 使用Hadoop glob 模式并在 form 中添加所有路径{path1.path2},例如:spark.read.parquet('/path/to/{20161109,20161110}').

于 2016-12-12T19:30:40.943 回答