【问题标题】:Extract columns from a json and write into a dataframe从 json 中提取列并写入数据框
【发布时间】:2023-02-03 00:23:36
【问题描述】:

我有以下字符串:

{
    "code": 4,
    "results": [
        {
            "requests": 100,
            "requests_country": 291,
            "listing": {
                "first": 1,
                "second": 2
            }
        },
        {
            "requests": 200,
            "requests_country": 292,
            "listing": {
                "first": 10,
                "second": 220
            }
        }
    ]
}

我想提取某些值以创建数据框。 这是所需的输出:

+---------+----------------+
| requests|requests_country|
+---------+----------------+
|  100    |291             |
|  200    |292             |
+---------+----------------+

我尝试了很多方法,但都没有用。

我尝试转换为地图,然后使用 parse 提取结果,但我不断收到错误。

【问题讨论】:

    标签: json dataframe scala


    【解决方案1】:

    您可以将字符串更改为一行,Spark 期望 JSON 以行分隔。然后您可以将其作为 Dataframe 读取,然后选择 results 列并再次将其作为 JSON 读取。

    是这样的:

    import spark.implicits._
    
    val df = spark.read.json(yourString.json)
    
    val jsonDF = df.select(col("results")).as[String]
    val resultsDF = spark.read.json(jsonDF)
    

    这应该返回一个带有requestsrequest_countrlisting字段的Dataframe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多