选择“12345”作为“EmpId”;
-- 输出为 empid,值为 12345
任何导致与 EmpId 保持相同列名的线索?
不可能。这是 HIVE 元存储的限制。它以全小写形式存储表的模式。
Hive 使用这种方法来规范化列名,参见Table.java
private static String normalize(String colName) throws HiveException {
if (!MetaStoreServerUtils.validateColumnName(colName)) {
throw new HiveException("Invalid column name '" + colName
+ "' in the table definition");
}
return colName.toLowerCase();
}
toLowerCase
所有代码都有很多相同之处。例如SessionHiveMetaStoreClient.java等,由于需要对代码进行如此多的更改,因此更改此行为似乎并不容易。