如何将Spark Dataframe的时间戳列转换为字符串列

时间:2019-11-08 07:08:44

标签: scala apache-spark

我想将所有TIMESTAMP列的Spark数据帧转换为String列。有人可以说如何针对每个数据框自动执行此操作吗?

每个数据帧的时间戳列的位置可以更改,列名称也可以不同。

例如,在一个数据帧中,它可以是DataFrame1 columnA,但在Dataframe2中,它可以是columnX。

所以我需要以某种方式使用任何给定表中有关列类型的信息,并将其转换为字符串列。

您有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以编写一种将时间戳转换为字符串并在需要时使用的方法。

答案 1 :(得分:0)

看一下函数库。 date_format看起来像您想要的。

它将时间戳转换为指定格式的字符串

我以这种方式使用它:

    Dataset<Target> newData = spark.createDataset(targets, Encoders.bean(Target.class));

        newData.printSchema();

        newData.withColumn("date-time", functions.date_format(new Column("timestamp"), "yyyy-MM-dd_HH")).write()
                .mode(SaveMode.Append).option("basePath", basePath).partitionBy("date-time")

timestamp是目标类型java.sql.Timestamp

中的字段