我有一个像这样的数据框
+-------------------------------------------+
| output|
+-------------------------------------------+
|{"COLUMN1": "123", "COUMN2": {"A":1 "B":2}}|
+-------------------------------------------+
我只是想把JSON作为一个字符串或字典读到变量中,这样我就可以对它做进一步的操作。
问题是-
- 显然,当你在数据块上使用unity catalogue时,你不允许使用rdd或方法,如.iterrows,.collect等。(ref - https://community.databricks.com/s/question/0D58Y00009yKdeHSAS/cannot-use-rdd-and-cannot-set-sparkdatabrickspysparkenablepy4jsecurity-false-for-cluster)
- 使用.asDict或.first()等方法转换为Rows数据类型,无法将其转换回json。例如。
Row(output=Row(COLUMN1='123', ...
DF是如何创建的?
nextdf = df.select(struct(col("COLUMN1"),col("COLUMN2"),col("COLUMN3")).alias("output"))
输出应为-{"COLUMN1": "123", "COUMN2": {"A":1 "B":2}}
请让我知道我可以尝试什么?
2条答案
按热度按时间dtcbnfnu1#
这种情况下可以使用**
toJSON()
**。Example:
得到东西而不收集然后使用
Save as Text:
使用**
save
作为text
文件,带有header
**标志false
,从输出文件中转义列名。7hiiyaii2#
RDD
是旧接口,DataFrame
是新/替换接口。使用DataFrame
方法。