2016-10-14 3 views
0

私はs3からファイルを読み取り、5を取り、s3に書き戻す単純なスパークジョブを持っています。 私が見ているのは、s3に出力ファイル "directory"の横にoutput_ $ folder $という名前の追加ファイルが常にあるということです。S3でドル記号の付いたジャンクスパーク出力ファイル

この意味は?どのように私はそれを作成するスパークを防ぐことができますか?ここで は私がやっているかを示すためにいくつかのコードです...

x = spark.sparkContext.textFile("s3n://.../0000_part_00") 
five = x.take(5) 
five = spark.sparkContext.parallelize(five) 
five.repartition(1).saveAsTextFile("s3n://prod.casumo.stu/dimensions/output/") 

仕事の後、私はS3の結果を含む出力と呼ばれる「ディレクトリ」と、私は知りません$フォルダ$ output_と呼ばれる別のS3オブジェクトを持っていますそれは何ですか。

答えて

1

[OK]を、私はそれが何であるかを見つけたようです。 これはマーカーファイルであり、おそらくS3ディレクトリオブジェクトが存在するかどうかを判断するために使用されます。 どのように私はこの結論に達しましたか?

http://apache-spark-user-list.1001560.n3.nabble.com/S3-Extra-folder-files-for-every-directory-node-td15078.htmlは、その後、私は、私は方法の異なるバージョンを確認するつもりですかどうかを確認するために、他のソースリポジトリをGoogleで検索: まず、私は

org.apache.hadoop.fs.s3native.NativeS3FileSystem#mkdir 

方法のソースを示し、このリンクを発見しました。私はしませんでした。

最後に、s3出力ディレクトリオブジェクトを削除してからoutput_ $ folder $ファイルを残してから、同じスパークジョブを実行して再実行しました。出力ディレクトリが既に存在するとジョブは失敗しました。

私の結論として、これは、指定された名前のs3にディレクトリがあるかどうかを知るためのhadoopの方法であり、私はそれを生かさなければなりません。

上記のすべては、私のローカルの開発マシン、つまりラップトップからジョブを実行すると発生します。 awsデータパイプラインから同じジョブを実行すると、output_ $ folder $は作成されません。

関連する問題