0
我想读取存储在HDFS中的Avro表,并指定也存储在HDFS中的模式 。 目前我有这样的解决方案,似乎工作:使用Spark-Java读取存储在HDFS中的Avro表和模式
RDD<String> stringRDD = sparkContext.textFile(schemaPath, 1);
String [] collect = (String []) stringRDD.collect();
String schema = collect[0];
Dataset<Row> df =sqlContext.read().format("com.databricks.spark.avro").option("avroSchema", schema)
.load(tablePath);
这是做到这一点的最好方法是什么? 如果模式足够大以至于有2个分区会怎样?我应该使用reduce()将它们全部合并?
干杯
为什么您需要首先阅读架构?可以在没有模式的情况下读取avro(因为模式嵌入在avro中)。您是否尝试过跳过架构选项? –
模式也可以直接在类中描述(作为一个手工创建的字段),而不需要从外部文件获取它,它是一个选项吗? – Mironor