如何将日期格式 'YYYY-MM-DD' 转换为 pyspark 中的 ddMMyy?
how to convert the date format 'YYYY-MM-DD' to ddMMyy in pyspark?
我尝试使用 to_date 将日期格式 2018-07-12 转换为 ddMMyy,但在转换日期格式后我得到 null
df = spark.createDataFrame([('2018-07-12',)], ['Date_col'])
df = df.withColumn('new_date',to_date('Date_col', 'ddMMyy'))
我需要使用此逻辑来转换数据框列。我是 spark 编程的新手,尝试了很多解决方案但没有任何帮助。
我需要连接一列的 ddMMyy 和另一列的 hhss
有什么帮助吗?
首先让我们创建DataFrame
df = spark.createDataFrame([('2018-07-12',)], ['Date_col'])
df.show()
+----------+
| Date_col|
+----------+
|2018-07-12|
+----------+
然后我们将为此定义 UDF 函数。
from datetime import datetime
import pyspark.sql.types as T
import pyspark.sql.functions as F
def user_defined_timestamp(date_col):
_date = datetime.strptime(date_col, '%Y-%m-%d')
return _date.strftime('%d%m%y')
user_defined_timestamp_udf = F.udf(user_defined_timestamp, T.StringType())
最后我们将在 DateFrame 上应用我们的函数以创建我们想要的列。
df = df.withColumn('new_date', user_defined_timestamp_udf('Date_col'))
df.show()
+----------+--------+
| Date_col|new_date|
+----------+--------+
|2018-07-12| 120718|
+----------+--------+
您可以使用内置的pyspark.sql.functions.date_format(date, format)
函数:
from pyspark.sql.functions import date_format
df = spark.createDataFrame([('2018-07-12',)], ['dt'])
df.select(date_format('dt', 'ddMMyy').alias('date')).collect()
结果:
我尝试使用 to_date 将日期格式 2018-07-12 转换为 ddMMyy,但在转换日期格式后我得到 null
df = spark.createDataFrame([('2018-07-12',)], ['Date_col'])
df = df.withColumn('new_date',to_date('Date_col', 'ddMMyy'))
我需要使用此逻辑来转换数据框列。我是 spark 编程的新手,尝试了很多解决方案但没有任何帮助。
我需要连接一列的 ddMMyy 和另一列的 hhss
有什么帮助吗?
首先让我们创建DataFrame
df = spark.createDataFrame([('2018-07-12',)], ['Date_col'])
df.show()
+----------+
| Date_col|
+----------+
|2018-07-12|
+----------+
然后我们将为此定义 UDF 函数。
from datetime import datetime
import pyspark.sql.types as T
import pyspark.sql.functions as F
def user_defined_timestamp(date_col):
_date = datetime.strptime(date_col, '%Y-%m-%d')
return _date.strftime('%d%m%y')
user_defined_timestamp_udf = F.udf(user_defined_timestamp, T.StringType())
最后我们将在 DateFrame 上应用我们的函数以创建我们想要的列。
df = df.withColumn('new_date', user_defined_timestamp_udf('Date_col'))
df.show()
+----------+--------+
| Date_col|new_date|
+----------+--------+
|2018-07-12| 120718|
+----------+--------+
您可以使用内置的pyspark.sql.functions.date_format(date, format)
函数:
from pyspark.sql.functions import date_format
df = spark.createDataFrame([('2018-07-12',)], ['dt'])
df.select(date_format('dt', 'ddMMyy').alias('date')).collect()
结果: