【问题标题】:how to read parquet files in pyspark as per the defined schema before read?如何在读取前根据定义的模式读取 pyspark 中的镶木地板文件?
【发布时间】:2021-01-12 06:07:49
【问题描述】:

我正在从 pyspark 的 s3 存储桶中完全读取镶木地板文件。有一些镶木地板文件具有不同的架构,这会导致作业错误。我想传递预定义的架构和火花作业应该只读取与预定义的 scehma 匹配的文件。

data = spark.read.parquet(*path_list)

parquet spark read 命令正在批量读取文件。怎么可能只读取传递预定义模式的镶木地板文件,并且只有那些与传递的模式匹配的镶木地板文件才应该被读取。限制是我需要通过批量加载来实现这一点,这意味着将文件列表 ( path_list ) 传递给 spark read parquet 命令。

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    您可以尝试这样的方法来使其工作。首先读取数据框中的所有文件,然后从您已读取的现有数据框中选择您需要的列,并根据值过滤掉行。

    data = spark.read.option("mergeSchema", "true").parquet("data/")
    selectedData = data.select("column1","column2",,).filter("column1".isNotNull)
    

    我认为执行上述步骤可以让你动起来。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 2018-08-13
      • 2021-03-19
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2019-02-22
      • 2021-01-12
      • 2018-05-14
      相关资源
      最近更新 更多