【发布时间】:2016-08-22 09:09:18
【问题描述】:
使用:spark 1.5.2,hive 1.2 我有一个镶木地板格式的外部蜂巢表。我创建了一个 .py 脚本,它从 my_table 中选择一个数据框,进行一些转换,然后尝试写回原始表。
我尝试了以下方法:
-
df.write.insertInto('table_name', overwrite='true')。
这会引发以下错误:
pyspark.sql.utils.AnalysisException:无法将覆盖插入到正在读取的表中。
df.write.mode('overwrite').parquet('my_path')df.write.parquet('my_path', mode='overwrite')df.write.save('my_path', format='parquet', mode = 'overwrite')
这些似乎都抛出了这个错误:
ERROR Client fs/client/fileclient/cc/client.cc:1802 Thread: 620 Open failed for file /my_path/part-r-00084-9, LookupFid error No such file or directory(2) 2016-04-26 16:47:17,0942 错误 JniCommon fs/client/fileclient/cc/jni_MapRClient.cc:2488 线程:620 getBlockInfo 失败,无法打开文件 /my_path/part-r-00084-9 16/04/26 16:47:17 WARN DAGScheduler:创建新阶段因异常而失败 - 作业:16
**请注意,如果文件格式为 orc,则上面的方法 1 可以正常工作,但会引发 parquet 错误。
任何建议将不胜感激!
【问题讨论】: