我正在尝试在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...");
答案 0 :(得分:2)