Spark Dataframe:将 bigint 转换为时间戳

Anu*_*rma 2 apache-spark

我有一个带有 bigint 列的数据框。如何在scala spark中将bigint列转换为时间戳

Shu*_*Shu 5

您可以使用from_unixtime/to_timestampspark 中的函数将Bigint列转换为timestamp.

例子:

spark.sql("select timestamp(from_unixtime(1563853753,'yyyy-MM-dd HH:mm:ss')) as ts").show(false)
+-------------------+
|ts                 |
+-------------------+
|2019-07-22 22:49:13|
+-------------------+
Run Code Online (Sandbox Code Playgroud)

(或者)

spark.sql("select to_timestamp(1563853753) as ts").show(false)
+-------------------+
|ts                 |
+-------------------+
|2019-07-22 22:49:13|
+-------------------+
Run Code Online (Sandbox Code Playgroud)

架构

spark.sql("select to_timestamp(1563853753) as ts").printSchema
root
 |-- ts: timestamp (nullable = false)
Run Code Online (Sandbox Code Playgroud)

有关在 spark 中转换不同格式的时间戳的更多详细信息,请参阅链接。