scala - 在 spark scala 中将 CDT 时间戳转换为 UTC 格式
问题描述
我的数据框 myDF 如下所示 -
DATE_TIME
Wed Sep 6 15:24:27 CDT 2017
Wed Sep 6 15:30:05 CDT 2017
格式的预期输出:
2017-09-06 15:24:27
2017-09-06 15:30:05
需要将 DATE_TIME 时间戳转换为 UTC。
在 databricks 笔记本中尝试了以下代码,但它不起作用。
%scala
val df = Seq(("Wed Sep 6 15:24:27 CDT 2017")).toDF("times")
df.withColumn("times2",date_format(to_timestamp('times,"ddd MMM dd hh:mm:ss CDT yyyy"),"yyyy-MM-dd HH:mm:ss")).show(false)
times | times2
Wed Sep 6 15:24:27 CDT 2017 | null
解决方案
我认为我们需要wed
从您的字符串中删除然后使用to_timestamp()
函数。
Example:
df.show(false)
/*
+---------------------------+
|times |
+---------------------------+
|Wed Sep 6 15:24:27 CDT 2017|
+---------------------------+
*/
df.withColumn("times2",expr("""to_timestamp(substring(times,5,length(times)),"MMM d HH:mm:ss z yyyy")""")).
show(false)
/*
+---------------------------+-------------------+
|times |times2 |
+---------------------------+-------------------+
|Wed Sep 6 15:24:27 CDT 2017|2017-09-06 15:24:27|
+---------------------------+-------------------+
*/
推荐阅读
- c++ - 使用 Visual Studio Code 和 CMake-Tools 调试 QT 应用程序时出现未知错误
- vba - 更改一组 ActiveX 标签的名称
- php - PHP Twitter - 库 tmhOAuth:错误准备参数
- shopify - Shopify 结帐页面上的博客对象为空
- ruby - 从 Ruby 数组中导出矩阵并进行可视化
- reactjs - 反应 Web 开发服务器未实时检测到对 sass 文件的更改
- java - 如何按除第一个字母之外的所有内容对字符串数组进行排序
- python - Pytorch/numpy/python 高效插值损坏数据
- bash - 使用 jq 将 JSON 响应转换为键值对
- java - 杰克逊:反序列化时允许嵌套或“平面”收集