我有一个带有两个元素(id,日期)的 RDD。具有以下结构:data=sc.textFile("/user/cloudera/dates.txt")1,01-01-20012,01-02-20013,01-03-2001我想将我的 RDD 转换为:1,01/20012,02/20013,03/2001我怎样才能做到这一点?我尝试使用地图:data.map(lambda l: (year(l[1]) + month(l[1])))但是没有定义年和月
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
尝试解析字符串日期,然后使用withColumn并获取解析的新日期列应用于每一行。您应该将函数定义为 a udfbefore 才能使用它。
import datetime
def date_time_to_date(input_date_time):
new_date = datetime.datetime.strptime(input_date_time, "%d-%M-%Y").date()
return str(new_date.month) + "/"+ str(new_date.year)
udf_date_time_to_date = udf(date_time_to_date, StringType())
data.toDF(['id' , 'date']).withColumn('new_date', udf_date_time_to_date('date'))
添加回答
举报
0/150
提交
取消