我有一个文件格式如下
0, Alpha,-3.9, 4, 2001-02-01 08:00:00, 5, 20
0, Beta, -3.8, 3, 2001-02-01 08:15:00, 6, 21
1, Gamma,-3.7, 8, 2001-02-01 08:30:00, 7, 22
0, Alpha,-3.5, 4, 2001-02-01 08:45:00, 8, 23
0, Alpha,-3.9, 4, 2001-02-01 09:00:00, 8, 27
0, Gamma,-3.5, 5, 2001-02-01 09:15:00, 6, 21
等等。。。
我对每个raw中的sum of 5th element
感兴趣,例如,给定的Alpha/Beta/Gamma
在08:00:00 to 09:00:00
之间的时间间隔。我只想使用基于rdd
的操作between 08:00:00 to 09:00:00
得到以下结果。你知道吗
Alpha 21
Beta 6
Gamma 7
这就是我现在所做的
rdd = sc.textFile(myDataset)
newrdd = rdd.map(myFun) # myFun process each line
filterrdd = newrdd.filter(lambda e : e[4].startswith('2001-02-01') )
但我不知道怎么继续。或者至少无法找到一种仅使用基于rdd
的操作来解决它的简单方法。你知道吗
要按08:00:00-09:00:00(包括)之间的时间进行筛选,您只需确保此字符串的时间部分以
08:
或09:00:00
开头,因此您的筛选函数可以是e[4].split()[1].startswith(('08:', '09:00:00'))
。然后可以执行常规的RDD reduceByKey()等操作相关问题 更多 >
编程相关推荐