Ausgabedateinamenpräfix für DataFrame.write () ändern

Output-Dateien, die mit der Spark-SQL-Methode DataFrame.write () generiert wurden, beginnen mit dem Basisnamen-Präfix "part". z.B

DataFrame sample_07 = hiveContext.table("sample_07");
sample_07.write().parquet("sample_07_parquet");

Ergebnisse in:

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

Ich möchte das Präfix des Ausgabedateinamens ändern, das beim Erstellen einer Datei mit Spark SQL DataFrame.write () verwendet wird. Ich habe versucht, die Eigenschaft "mapreduce.output.basename" in der Hadoop-Konfiguration für den Spark-Kontext festzulegen. z.B

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();
  }

Das Präfix des Ausgabedateinamens für die generierten Dateien wurde nicht geändert.

Gibt es eine Möglichkeit, das Präfix des Ausgabedateinamens bei Verwendung der DataFrame.write () -Methode zu überschreiben?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage