如果我有csv-
colName1,colName2
col1Value,col2Value
和类似的蜂巢ddl-
CREATE EXTERNAL TABLE tableName (
col2 STRING,
col1 STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 'hdfs://location/to/testcsv/directory'
tblproperties ("skip.header.line.count"="1");
//select col2 from tableName; gives col1Value
这显然是因为在文本文件的情况下,hive通过顺序位置匹配将列与数据字段匹配。如果基础文件是镶木地板,则使用列名进行匹配。
我想知道是否有一个有人配置的SerDe或我缺少的SerDe属性,它告诉蜂巢使用蜂巢表列名称映射数据字段名称,因此在上面的示例中,当col2时它将返回“ col2Value”即使在蜂巢表和数据文件中col2的顺序位置不匹配,也会被查询。
谢谢!