我想将所有TIMESTAMP列的Spark数据帧转换为String列。有人可以说如何针对每个数据框自动执行此操作吗?
每个数据帧的时间戳列的位置可以更改,列名称也可以不同。
例如,在一个数据帧中,它可以是DataFrame1 columnA,但在Dataframe2中,它可以是columnX。
所以我需要以某种方式使用任何给定表中有关列类型的信息,并将其转换为字符串列。
您有什么想法吗?
答案 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