在PySpark RDD中查找和删除符号

时间:2017-03-29 11:02:21

标签: python python-2.7 apache-spark pyspark spark-dataframe

我有一堆Csv文件,我将其加载到PySpark RDD中。它们每个都有一个双头,我可以在连接所有的Csv后成功删除。目的是最终拥有一个干净的Dataframe。

原始Csvs中的日期时间列会导致我出现问题,这里是一些值的样子;

2017/02/15-9:54:
2017/02/15-9:56:
2017/02/15-9:58:
2017/02/15-10:00
2017/02/15-10:02

我希望能够剥离':'当它恰好是正确日期时间的最后一个字符或格式时。

看看我的数据是什么样的:

u'2017/02/15-11:28,name,99.77341,1.5625,53,14.44655,53,1596.375,1.436081,0.4915466,0.1103516,9.31524,3.125,2.910973,4.6875,53,46,1596.375,5.380112', 
u'2017/02/16-7:48:,name,99.7734,4.6875,49,14.51247,49,1596.374,1.347595,0.4937897,0.1104431,9.318081,2.34375,2.90873,0,49,43,1596.374,5.213211,'

我累了:

rdd2= rdd.map(lambda x: x.replace('%Y/%m/%d-\d{2}:\d{2}:' , '%Y/%m/%d-\d{2}:\d{2}:\d{2}'))

rdd2 = rdd.map(lambda x: x.rstrip(':'))

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

如果datetime变量是第一列,您可以执行以下操作:

rdd.map(lambda x: (x[0].rstrip('\:'), x[1:])).map(lambda x: (x[0],) + x[1])