有没有一种方法可以一次将多个文件加载到 pyspark 数据框(2.0.0)中。这些文件存在于不同的目录中。或者我可以这样说,我有一个文件存储在 S3 中,分区为天序列数字(20161109),我想加载特定日期的数据(不是文件夹内的所有文件)。一个一个地加载并做 unionAll 效率不高(我相信)。有没有更好的办法?
1 回答
0
您可以通过两种方式实现此目的:
1) 将所有目录重命名为pattern field=value,例如day=20161109
,day=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 回答