[英]How to select data with the oldest time per key in RDD?
我有一个带有两个变量ID
和time
的RDD。 time
采用datetime.datetime
格式。 这是RDD数据的头部扫描:
[[41186, datetime.datetime(2014, 3, 1, 20, 48, 5, 630000)],
[32036, datetime.datetime(2014, 3, 2, 0, 25, 41, 950000)],
[41186, datetime.datetime(2014, 3, 2, 0, 31, 29, 380000)],
[40479, datetime.datetime(2014, 3, 2, 0, 39, 6, 800000)],
[4598, datetime.datetime(2014, 3, 2, 1, 48, 47, 430000)]]
一个ID
将在数据文件中以不同的日期时间出现多次,我只想选择时间最远的每个ID
。
例如,在上面的示例数据中,我只需要选择:
[[41186, datetime.datetime(2014, 3, 1, 20, 48, 5, 630000)],
[32036, datetime.datetime(2014, 3, 2, 0, 25, 41, 950000)],
[40479, datetime.datetime(2014, 3, 2, 0, 39, 6, 800000)],
[4598, datetime.datetime(2014, 3, 2, 1, 48, 47, 430000)]]
如何编写查询以获取此输出? 谢谢。
使用groupByKey
并应用min
:
print(rdd.groupByKey().mapValues(min).collect())
#[(41186, datetime.datetime(2014, 3, 1, 20, 48, 5, 630000)),
# (32036, datetime.datetime(2014, 3, 2, 0, 25, 41, 950000)),
# (4598, datetime.datetime(2014, 3, 2, 1, 48, 47, 430000)),
# (40479, datetime.datetime(2014, 3, 2, 0, 39, 6, 800000))]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.