У меня есть датафрейм rating
в формате ниже:
id | percentile
------------+-------------------------------------------------
0011111111 | {"80": 3438, "40": 1063, "60": 2119, "20": 620}
Мне нужно преобразовать в формат ниже:
id | 80 | 40 | 60 | 20 |
------------+------+------+------+------+
0011111111 | 3438 | 1063 | 2119 | 620 |
Я пробовал с кодом ниже, но не помогло:
val schema = StructType(Seq(
StructField("80", DoubleType, true)
,StructField("60", DoubleType, true)
,StructField("40", DoubleType, true)
,StructField("20", DoubleType, true)
))
val rating1 = rating.withColumn("jsonData", from_json(col("percentile"), schema))
rating1.show()
+--------------------+--------------------+--------------------+
| cid| percentile| jsonData|
+--------------------+--------------------+--------------------+
| 0011111111|{"80": 3438, "40"...|[3438.0, 1063.0, ...|
Как мне получить 80
, 60
, 40
, 20
в виде столбцов