首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spark Timestamp - Millis和RFC3339 nano

Spark Timestamp - Millis和RFC3339 nano
EN

Stack Overflow用户
提问于 2017-06-14 16:06:05
回答 0查看 892关注 0票数 1

我的数据源提供了纳秒的时间戳。理想情况下,我希望保留这一点,但是对TimestampType的RFC3339支持是必需的,但我不认为它是(或者它是!)

首先,有没有办法在Spark中做到这一点?Im使用2.11-2.1.1 (实际上使用databricks runtime 3.0)

现在我当然想保留millis (用于快速事件时间排序)-如果需要,我可以在没有nanos精度的情况下生活。

代码语言:javascript
复制
val orderPlacedTimestampDF = Seq(
  ("orderPlacedDate", "2017-06-13T14:23:49.357Z")).toDF("field", "date")

val orderPlacedTimestampConvertedDF = 
   orderPlacedTimestampDF.select($"field", $"date", unix_timestamp($"date", "yyyy-MM-dd'T'HH:mm:ss.SSS").cast(TimestampType).as("timestamp"))

display(orderPlacedTimestampConvertedDF)


'2017-06-13T14:23:49.357Z' gets converted to '2017-06-13T14:23:49.000+0000'

(注意:如果我将'Z‘添加到模式中,我会得到null返回!)

感谢您的任何帮助

注意格式字符串上的'.SSS‘后缀。但是,这只是返回与不带.SSS的格式字符串相同的结果。

我是不是遗漏了什么,或者是有更好的方法来做这个转换,或者TimestampType不支持?

谢谢!

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44538999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档