【问题标题】:How do I read different schema json objects from a single file and save it to a table如何从单个文件中读取不同的模式 json 对象并将其保存到表中
【发布时间】:2021-11-14 12:34:30
【问题描述】:

我是新来pyspak。能否请你帮我用pyspark从JSON文件创建一个表。它已设置2点差异的对象,需要结合为基于ID的单个行的。 P>

样本JSON文件数据:

[
  {
    "id": "UP1981",
    "price1": "$49.99",
    "platforms": [
      "PS4"
    ]
  },
  {
    "id": "UP1981",
    "title": "HOT WHEELS",
  },
  {
    "id": "UP1982",
    "price1": "$50",
    "platforms": [
      "PS4"
    ]
  },
  {
    "id": "UP1982",
    "title": "HOT WHEELS2",
  }
]

输出表:4列 - idprice1platformstitle

|   id      |  price1    |   Platforms  |   title          | 
|   UP1981   |  $49.99   |   PS4        |   HOT WHEELS     |
|   UP1982   |   $50     |   PS4        |   HOT WHEELS2    |

【问题讨论】:

    标签: json pyspark


    【解决方案1】:

    您可以使用 spark.read.json 读取 json 文件,然后按 id 对数据进行分组并在数据之上应用聚合。

    Example:

    from pyspark.sql.functions import *
    
    df=spark.read.option("multiLine",True).json("<json_file_path>")
    
    df.groupBy("id").agg(array_join(first("platforms"),"").alias("platforms"),first("price1").alias("price1"),max("title").alias("title")).show()
    #+------+---------+------+-----------+
    #|    id|platforms|price1|      title|
    #+------+---------+------+-----------+
    #|UP1981|      PS4|$49.99| HOT WHEELS|
    #|UP1982|      PS4|   $50|HOT WHEELS2|
    #+------+---------+------+-----------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-23
      • 2019-08-23
      • 1970-01-01
      • 2018-01-17
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多