2016-11-28 66 views
3

我找不到在hadoop pyspark中删除hdfs输出文件的方法。 使用命令:FileAlreadyExists pyspark

hadoop fs -rmdir "path/outputFile.csv" 

当我运行相同的输出文件名的新工作,我得到的错误FileAlreadyExist。

任何人都知道如何处理这种情况? 在此先感谢

回答

0

如果您正在使用dataframes和数据帧格式的输出,你过像下面这样写。

使用
df.write('filepath/filename.csv', mode='overwrite') 
4

从命令行中,你可以使用命令:

hdfs dfs rm -r /path/to/myDir/ 

从星火,你可以做(​​Scala中):

import org.apache.hadoop.fs.{FileSystem,Path} 
import java.net.URI 

val dirPath = "/path/to/my/dir/" 
val fileSystem = FileSystem.get(URI.create(dirPath), sqlContext.sparkContext.hadoopConfiguration) 
fileSystem.delete(new Path(dirPath), true) 
0

您只需做到以下几点:

import os 
os.system("hadoop fs -rmdir "path/outputFile.csv"") 
1

另一种解决方案pyspark:

import subprocess 
subprocess.call(["hadoop", "fs", "-rm", "path/outputFile.csv"]) 

您可以使用呼叫来执行,我们在命令行中执行任何任务