2017-08-28 72 views
0

我有一個基於Avro的外部Hive表。Spark avro insertInto文件擴展

| 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')   | 

我試圖用星火爲寫這個表:

SELECT_0_0.toDF().write.mode("append").insertInto("temp_avro") 

這樣,Avro的文件被在不Avro的擴展HDFS位置創建(其名稱的一部分-00001,部分-00002等)。有沒有一種方法來與擴展.avro

+0

什麼是你的動機爲前聚結使用,以減少零件組合成一個試試? –

+0

正在使用此數據的應用程序期望具有.avro擴展名。 – sandeep

回答

0

文件名保存結果

SELECT_0_0.toDF().coalesce(1).write.mode("append").insertInto("temp_avro")