3

Amazon Elastic MapReduce EC2 インスタンスで次の Hive クエリを実行しています。

CREATE EXTERNAL TABLE myExport (access_key string, active bigint,
    api_id string, secret_key string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Authentication",
    "dynamodb.column.mapping" = "access_key:access_key, active:active, api_id:api_id, secret_key:secret_key");

DynamoDB テーブルの内容を取得しようとしていAuthenticationますが、代わりに次のエラーが表示されます。

FAILED: Error in metadata: MetaException(message:Could not find column mapping for column: active)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
4

1 に答える 1

16

コンマで分割した後、Hive は DynamoDB 列マッピングをトリミングしないことが判明したため、列マッピングのリストにスペースを含めることはできません。

修正: コンマとスペース (", ") で区切られたリストの変更:

"dynamodb.column.mapping"
    = "access_key:access_key, active:active, api_id:api_id, secret_key:secret_key"

コンマのみ (",") で区切られたリストに:

"dynamodb.column.mapping"
    = "access_key:access_key,active:active,api_id:api_id,secret_key:secret_key"

そして今、それは機能します。

于 2013-09-05T14:34:18.787 に答える