Hadoop Pyspark:为spark sumbit作业覆盖拼花地板文件失败

Hadoop Pyspark:为spark sumbit作业覆盖拼花地板文件失败,hadoop,apache-spark,pyspark,hdfs,Hadoop,Apache Spark,Pyspark,Hdfs,我使用spark submit来运行我的pyspark代码,并希望覆盖HDFS中的现有文件。但是,它一直失败,错误消息为 17/10/27 10:18:07 java.io.FileNotFoundException:文件不存在: hdfs://path_to_my_file.parquet/part-00116-acbec1f9-7293-41b4-98f7-1c45167b9941.snappy.parquet 我的代码 df.write.format("parquet").mode("ov

我使用spark submit来运行我的pyspark代码,并希望覆盖HDFS中的现有文件。但是,它一直失败,错误消息为

17/10/27 10:18:07 java.io.FileNotFoundException:文件不存在: hdfs://path_to_my_file.parquet/part-00116-acbec1f9-7293-41b4-98f7-1c45167b9941.snappy.parquet

我的代码

df.write.format("parquet").mode("overwrite").save("hdfs://path_to_my_file.parquet")
但是,我非常确定在覆盖函数之前文件确实存在,当我在控制台中传递相同的代码时,它工作了!我真的不明白,我该如何解决这个问题


我使用的是Spark 2.1和Python 2.7

您必须检查HDFS的权限或检查路径。它可能是/user/file。在我的系统中,它不需要“hdfs://”,因为默认情况下它将hdfs local作为默认路径。试试这个,它很管用。所以这是权限的问题?不。对于默认路径,不需要添加“hdfs://”。好的,但是当我读取拼花地板文件时,可以添加“hdfs://”,当我写入.mode(“append”)时,也可以。只有当我想覆盖时才会发生。您必须检查HDFS权限或检查路径。它可能是/user/file。在我的系统中,它不需要“hdfs://”,因为默认情况下它将hdfs local作为默认路径。试试这个,它很管用。所以这是权限的问题?不。对于默认路径,不需要添加“hdfs://”。好的,但是当我读取拼花地板文件时,可以添加“hdfs://”,当我写入.mode(“append”)时,也可以。只有当我想覆盖时才会发生