首页 > 解决方案 > 如何将sqlserver中的十六进制日期值转换为sparksql中对应的数据格式

问题描述

从 sqlserver 数据库中的列之一获取此0x00EF290000000000十六进制值。

如何使用 spark 将此十六进制值转换为数据值?

需要显示其对应的日期时间值。

标签: apache-sparkapache-spark-sql

解决方案


在我尝试将时间戳转换为十六进制并返回时间戳的方式下方

val df = spark.sparkContext.parallelize(List("2009-07-30 12:58:59")).toDF("col1")

df.withColumn("hex_timestamp1", hex($"col1")).withColumn("timestamp2", decode(unhex($"hex_timestamp1"),"UTF-8")).show()

Output:
+-------------------+--------------------+-------------------+
|               col1|      hex_timestamp1|         timestamp2|
+-------------------+--------------------+-------------------+
|2009-07-30 12:58:59|323030392D30372D3...|2009-07-30 12:58:59|
+-------------------+--------------------+-------------------+

这可能有用!


推荐阅读