ValueError: time data '00.00.00' pyspark
ValueError: time data '00.00.00' pyspark
我正在以 "mm.dd.yy" 格式从 pyspark datafame 获取日期值。我想把它转换成 "mm.dd.yyyy" 格式。
我尝试编写一个 UDF,但日期时间函数抛出错误。
from pyspark.sql.types import StringType
from pyspark.sql.functions import udf
import datetime
def change_date(date_string):
dateConv = datetime.datetime.strptime(date_string,'%d.%m.%y')
dt_str = datetime.datetime.strftime(dateConv,'%d.%m.%Y')
return dt_str
date_udf = udf(lambda date: change_date(date), StringType())
display(filterEmplyValues.withColumn("date", date_udf(col("date"))))
我收到的错误是:
`
SparkException:作业因阶段失败而中止:阶段 302.0 中的任务 23 失败了 4 次,最近的失败:阶段 302.0 中丢失任务 23.3(TID 18078、10.139.64.15,执行者 71):org.apache.spark.api.python.PythonException:回溯(最近的最后调用):
主进程中的文件“/databricks/spark/python/pyspark/worker.py”,第 480 行()
ValueError:时间数据“00.00.00”与格式“%d.%m.%y”不匹配
`
感谢您的帮助。
您可以在没有 UDF
的情况下使用 spark 内置函数 to_date
和 date_format
。
df.show()
+--------+
| date|
+--------+
|08.27.18|
+--------+
from pyspark.sql import functions as F
df.withColumn("date", F.date_format(F.to_date("date", "MM.dd.yy"),"MM.dd.yyyy")).show()
+----------+
| date|
+----------+
|08.27.2018|
+----------+
我正在以 "mm.dd.yy" 格式从 pyspark datafame 获取日期值。我想把它转换成 "mm.dd.yyyy" 格式。
我尝试编写一个 UDF,但日期时间函数抛出错误。
from pyspark.sql.types import StringType
from pyspark.sql.functions import udf
import datetime
def change_date(date_string):
dateConv = datetime.datetime.strptime(date_string,'%d.%m.%y')
dt_str = datetime.datetime.strftime(dateConv,'%d.%m.%Y')
return dt_str
date_udf = udf(lambda date: change_date(date), StringType())
display(filterEmplyValues.withColumn("date", date_udf(col("date"))))
我收到的错误是: ` SparkException:作业因阶段失败而中止:阶段 302.0 中的任务 23 失败了 4 次,最近的失败:阶段 302.0 中丢失任务 23.3(TID 18078、10.139.64.15,执行者 71):org.apache.spark.api.python.PythonException:回溯(最近的最后调用): 主进程中的文件“/databricks/spark/python/pyspark/worker.py”,第 480 行()
ValueError:时间数据“00.00.00”与格式“%d.%m.%y”不匹配 `
感谢您的帮助。
您可以在没有 UDF
的情况下使用 spark 内置函数 to_date
和 date_format
。
df.show()
+--------+
| date|
+--------+
|08.27.18|
+--------+
from pyspark.sql import functions as F
df.withColumn("date", F.date_format(F.to_date("date", "MM.dd.yy"),"MM.dd.yyyy")).show()
+----------+
| date|
+----------+
|08.27.2018|
+----------+