【问题标题】:ORC specifying serializer is not workingORC 指定序列化程序不起作用
【发布时间】:2017-11-27 09:13:56
【问题描述】:

我在 HDFS 中有一些使用 Sqoop 导入的数据。数据导入为 ORC,压缩为 Snappy。

我正在尝试使用以下 DDL 语句在此数据之上创建一个表。但是,我收到以下错误。

失败:SemanticException [错误 10043]:列列表或 应指定自定义序列化程序

但是,我通过定义 ROW FORMAT SERDE and STORED AS INPUTFORMAT and OUTPUTFORMAT 来定义“自定义序列化程序”

DDL 声明:

CREATE EXTERNAL TABLE test_db.my_table_orc
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION  '/hdfs/app/DL/ORC_DATA_LOCATION'
tblproperties ("orc.compress"="SNAPPY");

【问题讨论】:

    标签: hadoop hive cloudera hiveql orc


    【解决方案1】:

    Hive 当前不支持在未在 DDL 中指定列列表的情况下创建 ORC 表。不过,ORC 文件确实包含有关列的元数据,因此如果您不确定给定 ORC 文件的列,则可以运行 ORC File Dump Utility 来获取它。

    【讨论】:

      【解决方案2】:
      1. 定义表的列。
      2. 不需要输入/输出格式。 stored as orc 就够了。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2020-10-16
      • 2012-09-18
      • 2015-02-27
      • 2023-03-24
      相关资源
      最近更新 更多