我有一个数据框,其中的日期字段"MM/dd/yyyy"
格式为字符串,我想在新字段中提取Scala中星期几的值。例如,我有数据框df
:
df.show()
------------
date
-----------
12/14/2017
12/13/2017
我想得到以下输出:
--------------------------------------------
date | day | month | year | DayOfWeek
--------------------------------------------
12/14/2017| 14 | 12 | 2017 | Thursday
12/13/2017| 13 | 12 | 2017 | Wednesday
我目前有以下代码:
df.withColumn("day", dayofmonth(to_date(df("date"),"MM/dd/yyyy")))
.withColumn("month", month(to_date(df("date"),"MM/dd/yyyy")))
.withColumn("year", year(to_date(df("date"),"MM/dd/yyyy")))
.withColumn("dayofweek", something(to_date...)
我没有找到提取dayofweek的功能-我应该怎么做?
另一个问题,是使用功能dayofmonth
,month
,year
为表现最好的选择还是有更好的办法?
您可以使用date_format
并指定格式"EEEE"
以获取星期几。这将为您提供全名,"E"
如果您希望将其缩短,则只需使用它,即星期一而不是星期一。
df.withColumn("dayofweek", date_format(to_date($"date", "MM/dd/yyyy"), "EEEE"))
从性能角度来看,我认为您不必担心。您正在使用的功能(包括上述功能)都是快速的,并且不是很复杂。从另一个角度来看,如果另一种方法会更快,那么这些功能很可能会以这种方式使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句