首页 > 解决方案 > 由于阶段故障而中止作业:将 spark 数据帧转换为 Pandas 数据帧时

问题描述

我在 Azure databricks 笔记本中运行以下脚本。

spark.conf.set("spark.sql.execution.arrow.enabled", "false")
jdbcDF = spark.read.format("jdbc") \
.option("url", f"jdbc:sqlserver://{ServerName};databaseName={DBName};") \
.option("user", User) \
.option("password", Password) \
.option("query","SELECT col1,col2,col3......col30 from A except SELECT col1,col2,col3......col30 from B ") \
.load()
df=jdbcDF.toPandas()

我正在尝试将结果集存储到 DF 中并转换为 pandas DF 以执行一些操作。

将 DF 转换为 pandas DF 时出现以下错误。即使在将其转换为 Pandas DF 之前,我也无法从同一个 DF 中选择任何列。

注意:查询在数据库中运行良好

错误:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 1985.0 中的任务 0 失败 4 次,最近一次失败:阶段 1985.0 中丢失任务 0.3(TID 57569、10.139.64.12、执行程序 15):com. microsoft.sqlserver.jdbc.SQLServerException:将 nvarchar 值“Aug”转换为数据类型 int 时转换失败。

有人可以帮我解决这个错误吗?

谢谢,普拉桑斯

标签: pythonpandasdataframeapache-sparkazure-databricks

解决方案


推荐阅读