如果我有一个像-
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在配置单元表和数据文件中的顺序位置不匹配。
提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!