为了账号安全,请及时绑定邮箱和手机立即绑定

Spark - Python - 在 RDD 上获取年/月

Spark - Python - 在 RDD 上获取年/月

梦里花落0921 2021-09-14 21:13:31
我有一个带有两个元素(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'))


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信