使用PySpark写入数据框时出错

时间:2020-09-03 17:36:08

标签: pyspark hive apache-spark-sql impala

我无法将表格保存到几种不同的来源中。
我尝试了以下方法:

  • dataset.toPandas().to_csv("local_path")
  • dataset.createOrReplaceTempView("tempTable")
    spark.sql("DROP TABLE IF EXISTS impala_table")
    spark.sql((f"CREATE TABLE IF NOT EXISTS impala_table AS "
    "SELECT * from tempTable"))
  • dataset.write.overwrite().saveAsTable("impala_table")
  • dataset.write.csv(file, header=True, mode="overwrite")

所以,我的推论是,它甚至都没有以任何形式编写它,但是我不知道该如何了解它。
错误日志如果不相同,则非常相似。我发现最奇怪的一个是module named "src" that is not found。这是我发现的最重复和最相关的内容:

/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'
 

感谢签出。
干杯。

1 个答案:

答案 0 :(得分:0)

我发现了此数据框背后的问题。
这与编写者无关,而是关于中间表的计算。

正如@kfkhalili指出的那样,建议您偶尔执行.show()来验证其运行是否正常。

谢谢。