[英]PySpark dataframe transformation - to get value part from JSON
我有一個 dataframe 如下所示,它同時具有鍵和值對。
| Name | Age | Location
| abc | 12 | loc1
| def | 13 | loc2
我想用它創建一個 json 字符串。 當我執行.toJSON()
並收集時,我從該 dataframe 中獲取了以下 json 字符串
[{"name":"abc","age":12,"location":"loc1"},{"name":"def","age":13,"location":"loc2"}]
是否可以只獲取 json 的值部分而不是獲取如下所示的密鑰?
預期 output:
[{"abc",12,"loc1"},{"def",13,"loc2"}]
我用來將 dataframe 轉換為 json 的代碼
df.toJSON().collect()
如果我們能在 PYSPARK 中得到一些解決方案,那就太好了。
您期望的結果不是有效的 JSON,因此您不能在 dataframe 或to_json
function 上使用toJSON()
。
您可以嘗試使用format_string
function 來獲得所需的結構:
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"}']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.