我有一個如下所示的資料框,其中包含鍵和值對。
| Name | Age | Location
| abc | 12 | loc1
| def | 13 | loc2
我想從中創建一個 json 字串。當我執行 a.toJSON()并收集時,我從該資料框中獲取以下 json 字串
[{"name":"abc","age":12,"location":"loc1"},{"name":"def","age":13,"location":"loc2"}]
是否可以只獲取 json 的值部分而不是獲取如下所示的鍵?
預期輸出:
[{"abc",12,"loc1"},{"def",13,"loc2"}]
我用來將資料幀轉換為 json 的代碼
df.toJSON().collect()
如果我們能在 PYSPARK 中得到一些解決方案就太好了。
uj5u.com熱心網友回復:
您期望的結果不是有效的 JSON,因此您不能toJSON()在資料幀或to_json函式上使用。
您可以嘗試使用format_string函式來獲得您想要的結構:
from pyspark.sql import functions as F
result = df.groupBy().agg(
F.collect_list(
F.format_string('{"%s", %s, "%s"}', *df.columns)
).alias("records")
).first()["records"]
print(result)
# ['{"abc", 12, "loc1"}', '{"def", 13, "loc2"}']
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388862.html
標籤:json 阿帕奇火花 火花 apache-spark-sql 火花结构流
上一篇:使用打字稿測驗JSON
