如何使配置单元表使用列名而不使用序数位置来匹配数据

k4emjkb1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(233)

如果我有一个像-

colName1,colName2
col1Value,col2Value

还有一个Hive像-

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

这显然是因为在文本文件的情况下,配置单元通过顺序位置匹配将列与数据字段相匹配。如果底层文件是parquet,则使用列名完成匹配。
我想知道是否有人编写了一个配置单元serde,或者我缺少了一个serde属性,它告诉配置单元用配置单元表列名Map数据字段名,这样在上面的示例中,当查询col2时,它将返回“col2value”,即使col2在配置单元表和数据文件中的顺序位置不匹配。
提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题