3

选择“12345”作为“EmpId”;

-- 输出为 empid,值为 12345

任何导致与 EmpId 保持相同列名的线索?

4

1 回答 1

11

不可能。这是 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等,由于需要对代码进行如此多的更改,因此更改此行为似乎并不容易。

于 2019-07-24T12:32:25.010 回答