Alterar o prefixo do nome do arquivo de saída para DataFrame.write ()

Os arquivos de saída gerados pelo método Spark SQL DataFrame.write () começam com o prefixo do nome da base "part". por exemplo.

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

Resulta em:

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

Gostaria de alterar o prefixo do nome do arquivo de saída usado ao criar um arquivo usando o Spark SQL DataFrame.write (). Tentei definir a propriedade "mapreduce.output.basename" na configuração do hadoop para o contexto do Spark. por exemplo.

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

Isso não alterou o prefixo do nome do arquivo de saída para os arquivos gerados.

Existe uma maneira de substituir o prefixo do nome do arquivo de saída ao usar o método DataFrame.write ()?

questionAnswers(2)

yourAnswerToTheQuestion