首页 > 解决方案 > Spark时间戳问题,时间戳相同但不匹配

问题描述

我正在将数据从源移动到我的存储桶中,并且需要编写一个用于数据验证的脚本。但是对于 Timestamp 数据类型,我面临一些奇怪的问题:我有两行包含两个相同的时间戳 [2017-06-08 17:50:02.422437]、[2017-06-08 17:50:02.422],因为第二个由于不同的文件系统配置而具有不同的格式 Spark 认为它们不同。有没有办法解决这个问题?理想的方法是在进行数据框比较时忽略此列。

标签: scalaapache-sparktimestamp

解决方案


您可以使用 unix_timestamp 并使用该数字进行比较。对于实际的日期要求,您可以使用 from_unixtime 转换为您需要的格式。不确定它是处理大量数据的有效方法......

 sqlContext.sql("Select unix_timestamp('2017-06-08 17:50:02.422'), unix_timestamp('2017-06-08 17:50:02.422437') ").show
+----------+----------+
| _c0| _c1|
+----------+----------+
|1496958602|1496958602|
+----------+----------+

推荐阅读