apache-spark - 如何将sqlserver中的十六进制日期值转换为sparksql中对应的数据格式
问题描述
从 sqlserver 数据库中的列之一获取此0x00EF290000000000十六进制值。
如何使用 spark 将此十六进制值转换为数据值?
需要显示其对应的日期时间值。
解决方案
在我尝试将时间戳转换为十六进制并返回时间戳的方式下方
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|
+-------------------+--------------------+-------------------+
这可能有用!