在 pyspark SQL 中将字符串日期转换为日期格式

Posted

技术标签:

【中文标题】在 pyspark SQL 中将字符串日期转换为日期格式【英文标题】:Convert string date to date format in pyspark SQL 【发布时间】:2021-11-16 15:51:30 【问题描述】:

我在表格中有一个日期列,它是字符串格式 我需要把这个字符串日期转换成日期类型格式

这就是我的日期列的样子

+----------+
|      date|
+----------+
|2018_07   |
+----------+

我需要将此日期转换为日期格式而不是字符串格式的所需格式

+----------+
|      Date|
+----------+
|2018-07-01|
+----------+

我正在尝试使用它,但它在日期列下给了我空值

%sql
SELECT Col1,Col2,Col3,Col4, 
TO_DATE(
      CAST(
        UNIX_TIMESTAMP(date, 'yyyy-MM-01') AS TIMESTAMP
      )
    ) as Date 
,sales
FROM db.table

感谢任何形式的帮助

【问题讨论】:

【参考方案1】:

我简化了你的代码,现在它可以正常工作了(刚刚测试过):-)

%sql
SELECT 
  Col1,
  Col2,
  Col3,
  Col4,
  TO_DATE(TRIM(date), 'yyyy_MM') AS DATE,
  sales
FROM 
  db.table

【讨论】:

我尝试使用相同的,但日期列显示空行 请复制代码并进行测试,因为我刚刚对您的示例数据进行了测试并且没问题。我现在也添加了修剪,因为日期周围可能有一些空格 完美,谢谢:)

以上是关于在 pyspark SQL 中将字符串日期转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 问题中转换 24 小时日期格式

在 SQL(Redshift)中将字符串(43677)转换为日期格式 [关闭]

如何在 SQL Server 中将字符串转换为日期时间?

在 SQL Server 中将字符串转换为日期

在 PHP 中将日期时间从 SQL 转换为字符串

如何在databricks sql中将字符串转换为日期