Spark SQLのDataFrame.write()メソッドで生成された出力ファイルは、 "part"ベース名の接頭辞で始まります。例えば私はスパークSQL DataFrame.write()を使用してファイルを作成するときに使用される出力ファイル名の接頭辞を変更したいDataFrame.write()の出力ファイル名のプレフィックスを変更する
hdfs dfs -ls sample_07_parquet/
Found 4 items
-rw-r--r-- 1 rob rob 0 2016-03-19 16:40 sample_07_parquet/_SUCCESS
-rw-r--r-- 1 rob rob 491 2016-03-19 16:40 sample_07_parquet/_common_metadata
-rw-r--r-- 1 rob rob 1025 2016-03-19 16:40 sample_07_parquet/_metadata
-rw-r--r-- 1 rob rob 17194 2016-03-19 16:40 sample_07_parquet/part-r-00000-cefb2ac6-9f44-4ce4-93d9-8e7de3f2cb92.gz.parquet
:中
DataFrame sample_07 = hiveContext.table("sample_07");
sample_07.write().parquet("sample_07_parquet");
結果。 Sparkコンテキストのhadoop設定で "mapreduce.output.basename"プロパティを設定しようとしました。例えば
public class MyJavaSparkSQL {
public static void main(String[] args) throws Exception {
SparkConf sparkConf = new SparkConf().setAppName("MyJavaSparkSQL");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
ctx.hadoopConfiguration().set("mapreduce.output.basename", "myprefix");
HiveContext hiveContext = new org.apache.spark.sql.hive.HiveContext(ctx.sc());
DataFrame sample_07 = hiveContext.table("sample_07");
sample_07.write().parquet("sample_07_parquet");
ctx.stop();
}
これは、生成されたファイルの出力ファイル名のプレフィックスを変更しませんでした。
DataFrame.write()メソッドの使用時に出力ファイル名のプレフィックスを上書きする方法はありますか?
返信いただきありがとうございます。とても有難い。 – Rob