我试图读取一个存储在hdfs中的avro表,该表还指定了存储在hdfs中的模式。目前,我有一个似乎有效的解决方案:
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()合并所有这些文件吗?
干杯
2条答案
按热度按时间watbbzwu1#
我知道已经有一年没有人问过这个问题了,但我最近也在想做同样的事情,这个问题在google上出现了。
所以,我可以使用hadoop的文件系统类:
希望这有帮助!
7kjnsjlb2#
使用spark 2.1.1的另一种方法