【发布时间】:2018-02-06 02:17:08
【问题描述】:
我有一个基于 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")
这样,avro 文件将在没有 avro 扩展名的 HDFS 位置创建(名称为 part-00001、part-00002 等)。有没有办法让文件名带有扩展名 .avro
【问题讨论】:
-
你这样做的动机是什么?
-
使用此数据的应用程序期望具有 .avro 扩展名。
标签: hadoop apache-spark hive