scala - Spark 2.0 如何将 DF 日期/时间戳列转换为 scala 中的另一种日期格式?
问题描述
为了我的学习,我一直在使用下面的示例数据集。
+-------------------+-----+-----+-----+-----+-------+
| MyDate| Open| High| Low|Close| Volume|
+-------------------+-----+-----+-----+-----+-------+
|2006-01-03 00:00:00|983.8|493.8|481.1|492.9|1537660|
|2006-01-04 00:00:00|979.6|491.0|483.5|483.8|1871020|
|2006-01-05 00:00:00|972.2|487.8|484.0|486.2|1143160|
|2006-01-06 00:00:00|977.8|489.0|482.0|486.2|1370250|
|2006-01-09 00:00:00|973.4|487.4|483.0|483.9|1680740|
+-------------------+-----+-----+-----+-----+-------+
我试图将“MyDate”列值更改为不同的格式,如“YYYY-MON”并这样写..
citiDataDF.withColumn("New-Mydate",to_timestamp($"MyDate", "yyyy-MON")).show(5)
执行代码后,发现新列“New-Mydate”。但我看不到所需的输出格式。你能帮忙吗
解决方案
你date_format
需要to_timestamp
:
val citiDataDF = List("2006-01-03 00:00:00").toDF("MyDate")
citiDataDF.withColumn("New-Mydate",date_format($"New-Mydate", "yyyy-MMM")).show(5)
结果:
+-------------------+----------+
| MyDate|New-Mydate|
+-------------------+----------+
|2006-01-03 00:00:00| 2006-Jan|
+-------------------+----------+
注意:三个“M”表示月份作为字符串,如果要将月份作为Int,则必须只使用两个“M”
推荐阅读
- java - Spring boot google calendar api 项目:如何将 AngularJS 前端转换为 html 和 Thymeleaf 前端?
- r - 将长数据转换为宽数据并在 R 中计算总和
- python - 使用烧瓶上传文件失败
- javascript - 为什么这个 Mongoose 更新不保存到数据库中?
- audio - 哪种编程语言更适合构建音频处理应用程序
- php - 如何在没有 SMTP 身份验证的情况下使用 PHPMailer 发送电子邮件?
- sql - 将 hashbytes() 函数的输出插入表中
- node.js - 如何使用 node.js 特定命令克隆 git 存储库
- servicestack - 由于时间戳查询字符串,入站 url 缓存不起作用
- javascript - CSS 边距:0 自动打乱另一个 DIV 的对齐方式