我试图在spark中的特定日期之后过滤我有以下RDD,我有一个2个字符串的数组,第一个是Date,下一个是Path,我想检查在特定日期之后Path改变了什么:
val cleanRDD = oivRDD.map(x => (x(5), x(7)))
res16:Array [(String,String)] = Array((2015-06-24,/),(2015-07-17,/ cdh),(2015-06-26,/ datameer),(2015-06) -24,/ devl),(2015-08-11,/ dqa),(2015-03-12,/ lake),(2015-02-13,/ osa))
我正在使用Java的SimpleDateFormt:
val sampleDate = new SimpleDateFormat("yyyy-MM-dd")
val filterRDD = cleanRDD.filter(x => dateCompare(x))
我的日期比较:
def dateCompare(input:(String, String)): Boolean = {
val date1 = sampleDate.format(input._1)
val date2 = sampleDate.parse(date1)
val date3 = sampleDate.parse("2015-07-01")
if (date2.compareTo(date3) > 0) true
else
false
}
我收到以下错误:
15/08/12 10:21:16 WARN TaskSetManager:阶段7.0中丢失的任务0.0(TID 10,edhpdn2128.kdc.capitalone.com):java.lang.IllegalArgumentException:无法将给定的对象格式化为日期
1 回答
使用新的数据框架框架,它有效的表达式如下:
该列具有 timestamp 类型:
此语法对Scala有效,但对于Java和Pyhton应该类似