Apache spark 将dataframe转换为pyspark中嵌套json对象的数组
我创建了dataframe,如下所示:Apache spark 将dataframe转换为pyspark中嵌套json对象的数组,apache-spark,pyspark,Apache Spark,Pyspark,我创建了dataframe,如下所示: +----+-------+-------+ | age| number|name | +----+-------+-------+ | 16| 12|A | | 16| 13|B | | 17| 16|E | | 17| 17|F | +----+-------+-------+ 如何将其转换为以下json: { 'age' : 16, 'values' : [{
+----+-------+-------+
| age| number|name |
+----+-------+-------+
| 16| 12|A |
| 16| 13|B |
| 17| 16|E |
| 17| 17|F |
+----+-------+-------+
如何将其转换为以下json:
{
'age' : 16,
'values' : [{‘number’: ‘12’ , ‘name’ : 'A'},{‘number’: ‘12’ , ‘name’ : 'A'} ]
},{
'age' : 17,
'values' : [{‘number’: ‘16’ , ‘name’ : 'E'},{‘number’: ‘17’ , ‘name’ : 'F'} ]
}
您可以将DF转换为RDD并应用您的转换: NewSchema=StructType[StructFieldage,IntegerType ,StructFieldValue,StringType ] res_df=df.rdd.maplambda行:行[0],{'number':行[1],'name':行[2]}]\ .reduceByKeylambda x,y:x+y\ .maplambda行:行[0],json.dumpsrow[1]\ toDFNewSchema先生 res_df.show20,错误 显示分辨率:
+---+------------------------------------------------------------+
|age|values |
+---+------------------------------------------------------------+
|16 |[{"number": 12, "name": "A"}, [{"number": 13, "name": "B"}] |
|17 |[{"number": 17, "name": "F"}, [{"number": 16, "name": "E"}] |
+---+------------------------------------------------------------+
将DF另存为JSON文件:
res_df.coalesce1.write.format'json'。保存'output.json'
您可以将DF转换为RDD并应用您的转换: NewSchema=StructType[StructFieldage,IntegerType ,StructFieldValue,StringType ] res_df=df.rdd.maplambda行:行[0],{'number':行[1],'name':行[2]}]\ .reduceByKeylambda x,y:x+y\ .maplambda行:行[0],json.dumpsrow[1]\ toDFNewSchema先生 res_df.show20,错误 显示分辨率:
+---+------------------------------------------------------------+
|age|values |
+---+------------------------------------------------------------+
|16 |[{"number": 12, "name": "A"}, [{"number": 13, "name": "B"}] |
|17 |[{"number": 17, "name": "F"}, [{"number": 16, "name": "E"}] |
+---+------------------------------------------------------------+
将DF另存为JSON文件:
res_df.coalesce1.write.format'json'。保存'output.json'
假设df是您的数据帧
从pyspark.sql导入函数为F
新建_df=df.select
年龄
F.struct
F.colnumber,
F.colname,
.别名值
.群比
年龄
阿格先生
F.collect_listvalues.aliasvalues
新的_df.toJSON
或
新建_df.write.json。。。
假设df是您的数据帧
从pyspark.sql导入函数为F
新建_df=df.select
年龄
F.struct
F.colnumber,
F.colname,
.别名值
.群比
年龄
阿格先生
F.collect_listvalues.aliasvalues
新的_df.toJSON
或
新建_df.write.json。。。
将DF转换为RDD,再转换回DF确实会产生影响performances@Steven也许吧,但我怀疑它是否真的会影响性能,因为在每个DF的背景中都有RDD!将DF转换为RDD,再转换回DF确实会产生影响performances@Steven也许吧,但我怀疑它是否真的会影响性能,因为在每个DF的背景中都有RDD!