Cambiar el prefijo de nombre de archivo de salida para DataFrame.write ()
Los archivos de salida generados a través del método Spark SQL DataFrame.write () comienzan con el prefijo de nombre base "parte". p.ej.
DataFrame sample_07 = hiveContext.table("sample_07");
sample_07.write().parquet("sample_07_parquet");
Resultados en:
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
Me gustaría cambiar el prefijo de nombre de archivo de salida utilizado al crear un archivo usando Spark SQL DataFrame.write (). Intenté establecer la propiedad "mapreduce.output.basename" en la configuración de hadoop para el contexto de Spark. p.ej.
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();
}
Eso no cambió el prefijo de nombre de archivo de salida para los archivos generados.
¿Hay alguna forma de anular el prefijo del nombre de archivo de salida cuando se usa el método DataFrame.write ()?