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 会引发异常不正确的双精度值

具有编辑距离的BigQuery查询UDF引发错误

用 Java Lambda 编写的 Spark UDF 引发 ClassCastException

Excel UDF IF 语句 <> 字符串引发 #Value 错误

对象内部定义的 Apache-Spark UDF 引发“没有可用于字符串的 TypeTag”

Redshift Python UDF 自行运行,但在部分使用 count 或作为另一个查询的一部分时会引发错误