我有一组基于 Avro 的配置单元表,我需要从中读取数据。由于 Spark-SQL 使用 hive serdes 从 HDFS 读取数据,它比直接读取 HDFS 慢得多。所以我使用数据块 Spark-Avro jar 从底层 HDFS 目录读取 Avro 文件。
一切正常,除非桌子是空的。我已设法使用以下命令从 hive 表的 .avsc 文件中获取架构,但出现错误“未找到 Avro 文件”
val schemaFile = FileSystem.get(sc.hadoopConfiguration).open(new Path("hdfs://myfile.avsc"));
val schema = new Schema.Parser().parse(schemaFile);
spark.read.format("com.databricks.spark.avro").option("avroSchema", schema.toString).load("/tmp/myoutput.avro").show()
解决方法:
我在该目录中放置了一个空文件,并且同样的工作正常。
有没有其他方法可以达到同样的效果?像conf设置什么的?