scala - 如何从scala数据框中的日期列值中检索月份?
问题描述
鉴于:
val df = Seq((1L, "04-04-2015")).toDF("id", "date")
val df2 = df.withColumn("month", from_unixtime(unix_timestamp($"date", "dd/MM/yy"), "MMMMM"))
df2.show()
我得到了这个输出:
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015| null|
+---+----------+-----+
但是,我希望输出如下:
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015|April|
+---+----------+-----+
如何使用 Scala 在 sparkSQL 中做到这一点?
解决方案
这应该这样做:
val df2 = df.withColumn("month", date_format(to_date($"date", "dd-MM-yyyy"), "MMMM"))
df2.show
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015|April|
+---+----------+-----+
笔记:
- 第一个字符串 (to_date) 必须与您现有日期的格式匹配
- 小心:“dd-MM-yyyy”与“MM-dd-yyyy”
- 第二个字符串(date_format)是输出的格式
文件:
推荐阅读
- angularjs - angularjs:加载时无法在 md-select 中显示多个选定项目
- javascript - 如何从另一个组件调用函数 [Angular]
- swift - ARKit / ARSCNView 中的视频稳定
- button - 对齐 appBar 下方的按钮,在颤动中没有任何空间
- python - Python替换具有不同长度和索引类型的数据帧之间的值
- google-cloud-endpoints-v2 - 创建服务配置时出现 Google Cloud Endpoint 错误
- python - pdf文件的自动wget下载-给定标题文本/ html;字符集=UTF-8
- angular - 离子选择器动态阵列
- javascript - 获取 DOM 中与给定正则表达式匹配的一组类
- pdf - 如何在 Kotlin 中解析 PDF?