如何使用列名称而不使用序数位置使Hive表匹配数据

时间:2018-08-17 20:41:57

标签: hadoop hive

如果我有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的顺序位置不匹配,也会被查询。

谢谢!

0 个答案:

没有答案