我有一个基于Avro的外部Hive表。
| CREATE EXTERNAL TABLE `temp_avro`( |
| `string1` string COMMENT '') |
| PARTITIONED BY ( |
| `string2` string) |
| ROW FORMAT SERDE |
| 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' |
| STORED AS INPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat' |
| LOCATION |
| 'hdfs://xxx/xxx/temp_avro' |
| TBLPROPERTIES ( |
| 'transient_lastDdlTime'='1503938718') |
我正在尝试使用Spark as:
写入此表SELECT_0_0.toDF().write.mode("append").insertInto("temp_avro")
这样,avro文件就可以在没有avro扩展名的HDFS位置创建(名称为part-00001,part-00002等)。有没有办法让文件名扩展名为.avro
答案 0 :(得分:0)
在保存结果之前,尝试使用coalesce将部件组合为一个
SELECT_0_0.toDF().coalesce(1).write.mode("append").insertInto("temp_avro")