【问题标题】:Read few parquet files at the same time in Spark在 Spark 中同时读取几个 parquet 文件
【发布时间】:2015-08-05 22:05:34
【问题描述】:

我可以使用 *(星号)同时读取几个 json 文件:

sqlContext.jsonFile('/path/to/dir/*.json')

有没有办法为镶木地板做同样的事情?星号不起作用。

【问题讨论】:

    标签: apache-spark parquet


    【解决方案1】:

    仅供参考,您还可以:

    • 使用通配符*sqlContext.read.parquet("/path/to/dir/part_*.gz")读取parquet文件子集

    • 通过显式指定读取多个 parquet 文件sqlContext.read.parquet("/path/to/dir/part_1.gz", "/path/to/dir/part_2.gz")

    【讨论】:

    【解决方案2】:
    InputPath = [hdfs_path + "parquets/date=18-07-23/hour=2*/*.parquet",
                 hdfs_path + "parquets/date=18-07-24/hour=0*/*.parquet"]
    
    df = spark.read.parquet(*InputPath)
    

    【讨论】:

    • 我的情况首先我过滤 s3 中的文件,然后将列表提供给 read.parquet() 谢谢!
    【解决方案3】:

    请参阅 spark jira 上的 this issue。从 1.4 开始支持。

    如果不升级到 1.4,您可以指向顶级目录:

    sqlContext.parquetFile('/path/to/dir/')
    

    这将加载目录中的所有文件。或者,您可以使用 HDFS API 来查找您想要的文件,并将它们传递给 parquetFile(它接受可变参数)。

    【讨论】:

    • 我收到AttributeError: 'SQLContext' object has no attribute 'parquetFile'
    【解决方案4】:

    对于读取:给出文件的路径和'*'

    例子

    pqtDF=sqlContext.read.parquet("Path_*.parquet")
    

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 2020-10-28
      • 2022-10-17
      • 2016-12-15
      • 2017-08-07
      • 1970-01-01
      • 2015-12-19
      • 2017-04-24
      • 1970-01-01
      相关资源
      最近更新 更多