1になり、符号化のためのJava 7を使用していたファイルの出力名を制御するsaveAsTextFile方法では直接サポートはありません。 saveAsHadoopDatasetを使用して、出力ファイルbasenameを制御できます。
例:part-00000ではなく、yourCustomName-00000を取得できます。
このメソッドを使用してサフィックス00000を制御することはできません。これは、各パーティションが一意のファイルに書き込むように、書き込み中に自動的に各パーティションに割り当てられるものです。
上記のコメントのように、独自のカスタムOutputFormatを記述する必要があります。
SparkConf conf=new SparkConf();
conf.setMaster("local").setAppName("yello");
JavaSparkContext sc=new JavaSparkContext(conf);
JobConf jobConf=new JobConf();
jobConf.set("mapreduce.output.basename", "customName");
jobConf.set("mapred.output.dir", "outputPath");
JavaRDD<String> input = sc.textFile("inputDir");
input.saveAsHadoopDataset(jobConf);
2)この問題を回避するには、それはあなたの出力場所にそのまま出力を書き込み、マージされたファイルを形成するためにHadoop FileUtil.copyMerge機能を使用することです。
ファイルが分割されているのが仕様です。あなたはいつもそれらを単一のファイルにマージすることができますhttp://stackoverflow.com/questions/5700068/merge-output-files-after-reduce-phase – Aravind
あなたはカスタムOutputFormatで行うことができますが、かなりの努力。ファイル名は、ファイル書き込みシステムの深いところから来ます。ファイル名をそのまま受け入れることをお勧めします。ファイルにアクセスするには、sc.textFile(filepath)を実行します。それは動作します。分割したパーティションを1つのファイルにマージするには、結合を使用できます。 –
ありがとう、ファイルに追加するコメント – duck