PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?
Posted
技术标签:
【中文标题】PythonException:从 UDF 引发异常:\'ValueError:如何在 Databricks 中修复此错误?【英文标题】:PythonException: An exception was thrown from a UDF: 'ValueError: how to fix this error in Databricks?PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误? 【发布时间】:2021-01-27 19:26:49 【问题描述】:当我将字符串转换为 DateTime 格式时,出现此错误。
from datetime import datetime
from pyspark.sql.functions import col, udf
from pyspark.sql.types import DateType
func = udf (lambda x: datetime.strptime(x,'%m/%d/%Y'), DateType())
df_review_dt = df_review_fil.withColumn('datetime', func(col('date')))
PythonException:从 UDF 引发异常:'ValueError: time data '2017-05-22' does not match > format '%m/%d/%Y'',来自第 5 行。下面的完整回溯:
【问题讨论】:
【参考方案1】:显然您的日期格式不正确 - 它应该是 '%Y-%m-%d'。也就是说,更好的方法是将列直接转换为日期类型。
import pyspark.sql.functions as F
df_review_dt = df_review_fil.withColumn('datetime', F.col('date').cast('date'))
【讨论】:
以上是关于PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?的主要内容,如果未能解决你的问题,请参考以下文章
将 UDF 从 MS SQL Server 移植到 MySQL 会引发异常不正确的双精度值
用 Java Lambda 编写的 Spark UDF 引发 ClassCastException
Excel UDF IF 语句 <> 字符串引发 #Value 错误