首页 > 解决方案 > 使用java在spark上进行数据处理

问题描述

我有一个数据集。

+-------------------+
|     Date          |
+-------------------+
|1970-01-01 06:00:00|
+-------------------+

我只想用小时和分钟。日期列在时间戳上。我尝试了以下代码:

       String format = "HH:mm";
       df.withColumn("hour:minute",unix_timestamp(col("Date"),format)).show(100);

但对我不起作用。

谢谢你 。

标签: javamysqlapache-spark

解决方案


unix_timestamp将时间戳转换为纪元/unix 时间

  • 使用任何一个date_formatfrom_unixtime(unix_timestamp())函数来提取hour:minute

例子:

df.withColumn("hour:minute",date_format(col("Date"),"HH:mm")).show()
df.withColumn("hour:minute",from_unixtime(unix_timestamp(col("Date"),"yyyy-MM-dd HH:mm:ss"),"HH:mm")).show()

//+-------------------+-----------+
//|               Date|hour:minute|
//+-------------------+-----------+
//|1970-01-01 06:00:00|      06:00|
//+-------------------+-----------+

推荐阅读