将数据帧字符串火花到月份



>我有一个数据帧,其中一列orddate字符串,我想从orddate中提取月份,在新 df 上用month名称创建一个新列。

|orddate|
|12/1/10 9:37| 
|20/3/10 10:37| 
|09/8/14 4:56| 
|30/12/11 12:13| 
|24/5/10 7:27|

转换为

|orddate| month |
|12/1/10 9:37| january|
|20/3/10 10:37| march |
|09/8/14 4:56| august |
|30/12/11 12:13| december |
|24/5/10 7:27| may |

1)使用带有格式dd/MM/yy hh:mmunix_timestamp将列转换为时间戳;2)使用带有格式MMMMMfrom_unixtime将时间戳转换为month;

您可以在此处查看有关格式的更多信息。

import org.apache.spark.sql.functions.{from_unixtime, unix_timestamp}
df.withColumn("month", from_unixtime(unix_timestamp($"orddate", "dd/MM/yy hh:mm"), "MMMMM")).show
+--------------+--------+
|       orddate|   month|
+--------------+--------+
|  12/1/10 9:37| January|
| 20/3/10 10:37|   March|
|  09/8/14 4:56|  August|
|30/12/11 12:13|December|
|  24/5/10 7:27|     May|
+--------------+--------+

相关内容

  • 没有找到相关文章

最新更新