配置单元时间戳格式



是否有任何特定的时间戳格式配置单元支持?

我的spark作业有一个时间戳"yyyy-MM-dd HH-MM-ss",但在将相同的数据存储在配置单元中时,数据是否会转换为null?

配置单元表的数据类型为时间戳

是的,您可以查看Hive语言手册

支持具有可选纳秒精度的传统UNIX时间戳。

支持的转换:

  • 整数数字类型:解释为UNIX时间戳(以秒为单位(
  • 浮点数字类型:解释为十进制精度的UNIX时间戳(以秒为单位(
  • 字符串:JDBC兼容java.sql.Timestamp格式"YYYY-MM-DD HH:MM:SS.fffffff"(小数点后9位(

我认为这适用于您的案例

文本文件中的时间戳必须使用格式yyyy-mm-dd hh:mm:ss[.f…]。如果它们是另一种格式,请将它们声明为适当的类型(INT、FLOAT、STRING等(,并使用UDF将它们转换为时间戳

一种方法(结束昂贵的方法(是将mergeSchema设置为true

更简单的方法是在时间戳列中使用类似coalesce(col("<spark_ts_column>"),lit("1970-01-01-00-00-00").cast(TimestampType))deafault值来处理null

顺便说一句,时间戳的格式看起来不标准,示例数据/代码会有所帮助。

最新更新