我在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");
2条答案
按热度按时间643ylb081#
如果不在ddl中指定列列表,配置单元当前无法支持创建orc表。不过,orc文件确实包含关于列的元数据,因此如果您不确定给定orc文件的列,那么可以运行orc文件转储实用程序来获取它。
slhcrj9b2#
定义表的列。
不需要输入/输出格式。
stored as orc
够了。