【发布时间】:2022-01-03 02:30:55
【问题描述】:
使用df.write.csv 尝试将我的 spark 数据帧导出到 csv 文件后,我收到以下错误消息:
~\AppData\Local\Programs\Python\Python39\lib\site-packages\py4j\protocol.py
in get_return_value(answer, gateway_client, target_id, name
324 value = OUTPUT_CONVERTER[type](answer[2:], gateway_client)
325 if answer[1] == REFERENCE_TYPE:
326 raise Py4JJavaError(
327 "An error occurred while calling {0}{1}{2}.\n".
328 format(target_id, ".", name), value)
Py4JJavaError: An error occurred while calling o58.csv. :
org.apache.spark.SparkException: Job aborted.
欢迎任何帮助,因为我无法理解这里发生了什么,尽管这看起来很简单。
编辑:发布整个代码
from pyspark.sql.types import *
import pandasql as sqldf
import pyspark
from pyspark.sql import SparkSession
spark= SparkSession.builder.appName('SIAF').getOrCreate()
spark.conf.set('spark.sql.repl.eagerEval.enabled', True)
sc = spark.sparkContext
spark
spark_df=spark.read.csv(r'C:\Users\...\SIAF_2.csv',sep = ',', header=True, inferSchema=True)
df = spark_df.select(
[
"MENU",
"NOM_SISTEMA",
"DSC_GRP_USUARIO",
"NOM_USUARIO",
"NOM_FUNCIONARIO",
"IND_ATIVO",
"DAT_DESLIGAMENTO",
]
).where(
(spark_df["MENU"].isNotNull())
& (spark_df["IND_ATIVO"] == "S")
& (spark_df["DAT_DESLIGAMENTO"].isNull())
).sort(
spark_df["MENU"], ascending=True)
df.show(5)
df.write.csv(
"C:/Users/.../spark_test", mode="overwrite", sep=",", header=True
)
【问题讨论】:
-
在写之前,如果你打电话给
df.show(),可以吗?如果您粘贴完整的代码会更好。 -
是的,
df.show()工作得很好。使用df.write.csv()将 df 写入 csv 文件时出现此错误。 -
当您尝试写入时,该文件未在其他应用程序中打开,对吧?你的 Java 版本是多少?
-
你的目标路径是否存在?它是否有权在该路径上写入文件..您可以更改您正在写入的路径并查看吗?
-
Java 版本:“1.8.0_311”我直接从我的下载文件夹打开文件,因为我试图避免任何可能与通过 Onedrive 使用共享文件夹有关的错误。 AFAIK,我有权在我试图将 .csv 文件保存到的文件夹中写入/读取。我已经尝试改变路径但没有成功
标签: python dataframe csv pyspark