【问题标题】:How to load multiple files present in different locations into pyspark dataframe at one go如何一次将不同位置的多个文件加载到pyspark数据帧中
【发布时间】:2016-12-12 13:13:37
【问题描述】:

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

【问题讨论】:

    标签: dataframe pyspark apache-spark-2.0


    【解决方案1】:

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

    1) 将所有目录重命名为模式字段=值,例如day=20161109day=20161110 等。然后在父目录上使用spark.read,这个day字段将显示为额外的列,你可以像这样在where中使用它:spark.read.parquet('/path/to/parent/dir').where(col('day').between('20161109', '20161110')

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多