首页 > 解决方案 > 使用 Spark SQL 将 CCYYMMDD 日期格式转换为 DDMMYYYY 格式

问题描述

我需要对 Spark 中包含日期的 Dataframe 列进行转换。该列最初是通过定义世纪 (CCYYMMDD) 来格式化的,我想将其更改为不同的格式 (DDMMYYYY)。

例如:

“21000101”到“01012000”

或者

“20991231”到“31121999”

我曾尝试使用 spark sql 函数 date_format:

public static Column toFlatFileDate(Column c, String inFormat, String outFormat) {
        return functions.date_format(functions.to_timestamp(c, inFormat), outFormat);
    }
Dataset<Row> result = source.withColumn("transformedDate", toFlatFileDate(source.col("base"), "CCyyMMdd", "ddMMyyyy"));

预期的输出应该是“transformed-column”列的格式应该是 ddMMyyyy,但结果是空值。

标签: javaapache-sparkapache-spark-sqldate-formatting

解决方案


推荐阅读