首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在星火SQL API中将YYYY MM-DD转换为YYYYMMDD

如何在星火SQL API中将YYYY MM-DD转换为YYYYMMDD
EN

Stack Overflow用户
提问于 2021-11-25 11:40:10
回答 1查看 2.6K关注 0票数 0

如何将YYYY MM-DD转换为火花sql中的YYYYMMDD .例2021-11-25应该是20211121.

在SERVER中,它很容易,可以借助转换()或Format ()的帮助。如何在星火 SQL中实现?

我不想将其转换为DataFrame或DF .Looking,以获得使用spark的答案。

这不是一个重复的问题,我需要使用SQL而不是Pyspark来完成这个任务!

EN

回答 1

Stack Overflow用户

发布于 2021-11-25 12:20:14

请先检查表的架构,因为字段可以是日期或字符串。

代码语言:javascript
复制
# dateframe with date as string and date as date
df = (spark.createDataFrame([{"date_str": "2021-11-01", "date_str": "2021-11-02"}])
      .withColumn("date_date", expr(" to_date(date_str) "))
     )

df.show()
df.schema

>>Out[1]:
>>+----------+----------+
>>|  date_str| date_date|
>>+----------+----------+
>>|2021-11-02|2021-11-02|
>>+----------+----------+
>>Out[2]: StructType(List(StructField(date_str,StringType,true),StructField(date_date,DateType,true)))

我们可以看到,我们的字符串日期和日期对象都是:。现在让我们将两者转换为YYYYMMDD:

代码语言:javascript
复制
df_converted = (df
.withColumn("date_str_converted", expr(" date_format(to_date(date_str), 'yyyyMMdd') "))
.withColumn("date_date_converted", expr(" date_format(date_date, 'yyyyMMdd')  "))
               )
            
df_converted.show()
>>Out[3]:
>>+----------+----------+------------------+-------------------+
>>|  date_str| date_date|date_str_converted|date_date_converted|
>>+----------+----------+------------------+-------------------+
>>|2021-11-02|2021-11-02|          20211102|           20211102|
>>+----------+----------+------------------+-------------------+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70110468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档