Hive外部表中的最大列数

时间:2012-05-02 17:21:23

标签: hadoop amazon-web-services hive amazon-dynamodb

我正在尝试在Amazon的EMR上设置Hive,以从DynamoDB表中提取数据并将其转储到S3。我按照here找到的说明进行了操作,并在大多数表格中取得了成功。但是,使用一个DynamoDB表时,出现错误(如下所示)。

有问题的表格中有一个批次列(> 100),并且将映射缩减到只有它们的一部分允许脚本运行,所以我假设这是问题,但我找不到任何相关的文档。

我可以定义的列数是否有某种硬限制?或者是否有其他限制,我可能会在这里打?有办法解决这个问题吗?


我得到的错误如下:

FAILED: Error in metadata: javax.jdo.JDODataStoreException: Put request failed : INSERT INTO `TABLE_PARAMS` (`PARAM_VALUE`,`TBL_ID`,`PARAM_KEY`) VALUES (?,?,?)
NestedThrowables:
org.datanucleus.store.mapped.exceptions.MappedDatastoreException: INSERT INTO `TABLE_PARAMS` (`PARAM_VALUE`,`TBL_ID`,`PARAM_KEY`) VALUES (?,?,?)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

我正在尝试运行的脚本如下:

CREATE EXTERNAL TABLE hive_WSOP_DEV_STATS_input (col1 string, col2 string...)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
    TBLPROPERTIES ( "dynamodb.table.name" = "DYNAMO_TABLE_NAME",
        "dynamodb.column.mapping" = "col1:col1,col2:col2...");

1 个答案:

答案 0 :(得分:2)

几年前我遇到了类似的问题。如果我没记错的话,问题是hive限制了它写入数据库的查询中的文本长度。如果你查看调用堆栈,你可能会发现该变量是否可配置,如果没有,可以在哪里编辑代码。