【发布时间】:2020-07-08 13:03:25
【问题描述】:
我有一个包含 6 个字符的字符串,应该作为 TIME 数据类型加载到 SQL Server 中。 但是 spark 没有任何时间数据类型。我尝试了几种方法,但时间戳中没有返回数据类型。
我正在将数据作为字符串读取并将其转换为时间戳,然后最终尝试提取时间值,但它再次将值作为字符串返回。
df.select('time_col').withColumn("time_col",to_timestamp(col("time_col"),"HHmmss").cast(TimestampType())).withColumn("tim2", date_format(col("time_col"), "HHmmss")).printSchema()
root
|-- time_col: timestamp (nullable = true)
|-- tim2: string (nullable = true)
数据看起来像这样,但数据类型不同。
df.select('time_col').withColumn("time_col",to_timestamp(col("time_col"),"HHmmss").cast(TimestampType())).withColumn("tim2", date_format(col("time_col"), "HHmmss")).show(5)
+-------------------+------+
| time_col| tim2|
+-------------------+------+
|1970-01-01 14:44:51|144451|
|1970-01-01 14:48:37|144837|
|1970-01-01 14:46:10|144610|
|1970-01-01 11:46:39|114639|
|1970-01-01 17:44:33|174433|
+-------------------+------+
有什么方法可以在时间戳列或与 SQL Server 的 TIME 数据类型等效的列中获取 tim2 列?
【问题讨论】:
标签: apache-spark pyspark databricks