Hive 配置单元:选择*无结果
我有一个LZO格式的外部蜂巢表存储。此表中有一些行,但我无法通过“选择*”获取数据。我的表格格式肯定有问题,但我不知道如何解决Hive 配置单元:选择*无结果,hive,Hive,我有一个LZO格式的外部蜂巢表存储。此表中有一些行,但我无法通过“选择*”获取数据。我的表格格式肯定有问题,但我不知道如何解决 CREATE EXTERNAL TABLE tableName( column1 string ) PARTITIONED BY ( column2 string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS INPUTFORMAT 'com.hadoop.m
CREATE EXTERNAL TABLE tableName(
column1 string
)
PARTITIONED BY (
column2 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS INPUTFORMAT
'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'hdfs://.../tableName'
select count(*) from tableName; //return 1
select * from tableName; //return nothing
select column1, column2 from tableName group by column1,column2; //return data1 data2
select * from tableName where column2='data2'; //return nothing
仅“选择*”不返回任何内容。可能“select*”没有通过map reduce执行?我发现map reduce不会执行简单的SQL(没有count、sum、groupby等),这将通过fetch作业(直接读取hdfs文件)执行。但是,我的hdfs文件是以lzo格式存储的,读取它会有一些问题 一种解决方案是强制简单SQL转到map reduce
set hive.fetch.task.conversion=none;
我为真正的原因感到非常抱歉。 我忘记了LZO的参数,因此hdfs文件是文本文件格式:( 可能重复的
set hive.exec.compress.output=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;