【问题标题】:Spark avro insertInto file extensionSpark avro insertInto 文件扩展名
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-03
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多