0

我使用 ConvertJSONToSql 将每个 Json 流文件转换为 sql,但是我不断收到此错误

Could not find IS_AUTOINCREMENT in [table_cat, table_schem, table_name, column_name, data_type, type_name, column_size, buffer_length, decimal_digits, num_prec_radix, nullable, remarks, column_def, sql_data_type, sql_datetime_sub, char_octet_length, ordinal_position, is_nullable, scope_catalog, scope_schema, scope_table, source_data_type, is_auto_increment]

我不知道这是什么原因。我刚刚在蜂巢中创建了我的表,如下所示:

create table ... 
... 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
4

1 回答 1

1

这与Hive-13528 有关。为了完整起见,下面复制了 JIRA 描述。

如文档所述,从 DatabaseMetaData 返回 getColumns() ( https://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getColumns(java.lang.String,% 20java.lang.String,%20java.lang.String,%20java.lang.String) ) 应该返回一个带有几列的 ResultSet,包括一个名为“IS_AUTOINCREMENT”的列,用于描述属性是否为自动递增。但是,在 Hive 实现中,该列被命名为“IS_AUTO_INCREMENT”(如文件 service/src/java/org/apache/hive/service/cli/operation/GetColumnsOperation.java 的第 107 行所述)。

此时您的选择是等待 Hive 修复推出并应用它,或者您可以使用修改后的 ConvertJSONToSQL 处理器构建您自己的 nifi-standard-nar 包。'IS_AUTOINCREMENT' 名称在该处理器中是硬编码的。

于 2016-08-11T18:07:34.580 回答