2016-11-28 9 views
3

hadoop pysparkでhdfs出力ファイルを削除する方法が見つかりません。 コマンドを使用する:FileAlreadyExists pyspark

hadoop fs -rmdir "path/outputFile.csv" 

私は同じ出力ファイル名を持つ新しいジョブを実行すると、私はエラーFileAlreadyExistを取得します。

誰でもこの状況を処理する方法を知っていますか?スパークから

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

データフレームと出力をデータフレーム形式で使用している場合、それを以下のように書く。

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

で おかげで、次のコマンドを使用することができます。

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

コマンドラインから事前

1

別の解決策pyspark:

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

あなたは私たちがコマンドラインで実行するすべてのタスクを実行するための呼び出しを使用することができ