【发布时间】:2017-03-01 08:16:43
【问题描述】:
我在各种 json 文件中都有 json 数据,并且键的行可能不同,例如
{"a":1 , "b":"abc", "c":"abc2", "d":"abc3"}
{"a":1 , "b":"abc2", "d":"abc"}
{"a":1 ,"b":"abc", "c":"abc2", "d":"abc3"}
我想在给定的 json 文件中不存在但可能存在于其他文件中的列 'b'、'c'、'd' 和 'f' 上聚合数据。所以因为列 'f' 不存在,我们可以为该列取空字符串。
我正在读取输入文件并像这样聚合数据
import pyspark.sql.functions as f
df = spark.read.json(inputfile)
df2 =df.groupby("b","c","d","f").agg(f.sum(df["a"]))
这是我想要的最终输出
{"a":2 , "b":"abc", "c":"abc2", "d":"abc3","f":"" }
{"a":1 , "b":"abc2", "c":"" ,"d":"abc","f":""}
有人可以帮忙吗?提前致谢!
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql