使用PySpark写入数据帧时出错
我无法将表格保存到几个不同的来源中的任何一个。使用PySpark写入数据帧时出错,pyspark,hive,apache-spark-sql,impala,Pyspark,Hive,Apache Spark Sql,Impala,我无法将表格保存到几个不同的来源中的任何一个。 我尝试了以下方法: dataset.toPandas()。到_csv(“本地路径”) dataset.createOrReplaceTempView(“诱惑”) spark.sql(“如果存在impala_表,则删除表”) spark.sql((f“如果不存在,则创建表” “从诱惑中选择*) dataset.write.overwrite().saveAsTable(“impala_表”) dataset.write.csv(文件,header=
我尝试了以下方法:
dataset.toPandas()。到_csv(“本地路径”)
dataset.createOrReplaceTempView(“诱惑”)
spark.sql(“如果存在impala_表,则删除表”)
spark.sql((f“如果不存在,则创建表”
“从诱惑中选择*)
dataset.write.overwrite().saveAsTable(“impala_表”)
dataset.write.csv(文件,header=True,mode=“overwrite”)
错误日志即使不相同,也非常相似。我发现最奇怪的一个是一个名为“src”的
模块,它没有找到。这是我发现的最重复和最相关的内容:
/opt/cloudera/parcels/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179/
lib/spark2/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py in
get_return_value(answer, gateway_client, target_id, name)
326 raise Py4JJavaError(
327 "An error occurred while calling {0}{1}{2}.\n".
--> 328 format(target_id, ".", name), value)
329 else:
330 raise
Py4JError( Py4JJavaError: An error occurred while calling o877.saveAsTable. :
org.apache.spark.SparkException: Job aborted. at
org.apache.spark.sql.execution.datasources.FileFormatWriter$.
write(FileFormatWriter.scala:224)
...
File "/opt/cloudera/parcels/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179/
lib/spark2/python/pyspark/serializers.py", line 566,
in loads return pickle.loads(obj, encoding=encoding)
ModuleNotFoundError: No module named 'src'
谢谢您的查看。
干杯。我发现了这个数据帧背后的问题。
这不是关于作者的,而是关于中间表格的计算
正如@kfkhali所指出的,为了验证它的运行是否平稳,建议执行零星的.show()
s
谢谢。这个错误可能是由于没有模式(“覆盖”)
的dataset.write.saveAsTable(“impala_表”)
造成的吗?我怀疑错误是由于impala_表
已经可用。哦。这张桌子不存在,所以我试着把它移走,然后就这样离开了。在任何情况下,我确信我以前尝试过。在尝试任何保存操作之前,您是否能够show()
数据集?@kfkhalili no,这会引发相同的错误。我也试过description
和head
,但都有同样的错误。事实上,我开始认为这与特定的数据集有关,而不是spark本身。考虑到它的特殊管道,并且涉及用户定义的ColumnDropper
阶段,我认为这可能是问题所在。