数据是这样的-
+-----------+-----------+-----------------------------+
| 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|
explode
函数将数据帧分解为多行。但这不是理想的解决办法。
注意:这个解决方案不能回答我的问题。 PySpark "explode" dict in column
正如@pault所建议的,数据字段是一个
string
字段。由于JSON字符串中的键与行上的键相同(即“key1”、“key2”),因此也可以使用json_tuple()
(根据文档,此函数在版本1.6中是新的)下面是我的原始帖子:如果原始表来自
df.show(truncate=False)
,并且data
字段不是python数据结构,那么很可能是错误的。因为您已经将数据分解成行,所以我假设列
data
是一个Python数据结构,而不是一个字符串:只要您使用的是Spark 2.1或更高版本,^{} 应该可以得到您想要的结果,但是您需要首先定义所需的
schema
它应该给你
相关问题 更多 >
编程相关推荐