指定序列化程序的orc无效

5kgi1eie  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(358)

我在hdfs中有一些使用sqoop导入的数据。数据作为orc导入,压缩很快。
我试图用下面的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");
643ylb08

643ylb081#

如果不在ddl中指定列列表,配置单元当前无法支持创建orc表。不过,orc文件确实包含关于列的元数据,因此如果您不确定给定orc文件的列,那么可以运行orc文件转储实用程序来获取它。

slhcrj9b

slhcrj9b2#

定义表的列。
不需要输入/输出格式。 stored as orc 够了。

相关问题