【发布时间】:2017-03-01 09:14:55
【问题描述】:
我有这个 json 数据,我想每小时汇总一次“时间戳”列,同时汇总“b”和“a”列中的数据。
{"a":1 , "b":1, "timestamp":"2017-01-26T01:14:55.719214Z"}
{"a":1 , "b":1,"timestamp":"2017-01-26T01:14:55.719214Z"}
{"a":1 , "b":1,"timestamp":"2017-01-26T02:14:55.719214Z"}
{"a":1 , "b":1,"timestamp":"2017-01-26T03:14:55.719214Z"}
这是我想要的最终输出
{"a":2 , "b":2, "timestamp":"2017-01-26T01:00:00"}
{"a":1 , "b":1,"timestamp":"2017-01-26T02:00:00"}
{"a":1 , "b":1,"timestamp":"2017-01-26T03:00:00"}
这是我到目前为止写的内容
df = spark.read.json(inputfile)
df2 = df.groupby("timestamp").agg(f.sum(df["a"],f.sum(df["b"])
但是在使用 groupby 函数之前,我应该如何更改 'timestamp' 列的值?提前致谢!
【问题讨论】:
-
这个answer 可能会有所帮助。它显示了如何对解析的时间戳对象进行舍入。
标签: apache-spark pyspark apache-spark-sql spark-streaming pyspark-sql