Leo*_*ard 5 python dataframe apache-spark pyspark
我想将此 json 转换为 pyspark 数据框,我已添加当前代码。
json = {
"key1": 0.75,
"values":[
{
"id": 2313,
"val1": 350,
"val2": 6000
},
{
"id": 2477,
"val1": 340,
"val2": 6500
}
]
Run Code Online (Sandbox Code Playgroud)
}
我的代码: 我可以使用我的代码获得预期的输出。希望有人改进这一点。
import json
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("CreateDataFrame").getOrCreate()
json_string = json.dumps({
"key1": 0.75,
"values":[
{
"id": 2313,
"val1": 350,
"val2": 6000
},
{
"id": 2477,
"val1": 340,
"val2": 6500
}
]
})
df = spark.read.json(spark.sparkContext.parallelize([json_string]))
df = df.select("key1", "values.id", "values.val1", "values.val2")
df.show()
Run Code Online (Sandbox Code Playgroud)
输出
+----+-------------+-------------+-------------+
|key1| id| val1| val2|
+----+-------------+-------------+-------------+
|0.75| [2313, 2477]| [350, 340]| [6000, 6500]|
+----+-------------+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)
帮助欣赏获得预期的输出。
期望输出:
+----+----+----+----+
|key1| id|val1|val2|
+----+----+----+----+
|0.75|2313| 350|6000|
|0.75|2477| 340|6500|
+----+----+----+----+
Run Code Online (Sandbox Code Playgroud)
您可以尝试 Spark内联功能。
df = df.selectExpr("key1", "inline(values)")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |