spark avro insertinto文件扩展名

fruv7luv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(488)

我有一个基于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写入此表:

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

这样,就可以在hdfs位置创建avro文件,而不使用avro扩展名(使用part-00001、part-00002等名称)。有没有办法让文件名扩展名为.avro

628mspwn

628mspwn1#

在保存结果之前,请尝试使用coalesce将合并的部分缩减为一个

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

相关问题