使用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
阶段,我认为这可能是问题所在。