数据看起来像这样 -
+-----------+-----------+-----------------------------+
| id| point| data|
+-----------------------------------------------------+
| abc| 6|{"key1":"124", "key2": "345"}|
| dfl| 7|{"key1":"777", "key2": "888"}|
| 4bd| 6|{"key1":"111", "key2": "788"}|
我正在尝试将其分解为以下格式。
+-----------+-----------+-----------+-----------+
| id| point| key1| key2|
+------------------------------------------------
| abc| 6| 124| 345|
| dfl| 7| 777| 888|
| 4bd| 6| 111| 788|
< p > explode
函数将数据框拆分成多行。但这不是期望的解决方案。
注意:这个解决方案没有回答我的问题。PySpark "explode" dict in column
schema = spark.read.json(df.rdd.map(lambda row: row.data)).schema
- Simon Peacockdf.schema
获取模式,不要忘记将所有数据类型都使用StringType()
,否则可能会对其他数据类型以及字符串类型产生null
值。 - Ankit Agrawaldf2 = df.select("*", col("data.*"))
。 - Shrikant Prabhu