gpt4 book ai didi

amazon-web-services - 如何使用 EMR 上的 HiveQL 将 DynamoDB 上的 Map 数据类型列导出到具有 JSON 数据类型的 S3?

转载 作者:行者123 更新时间:2023-12-04 08:00:33 24 4
gpt4 key购买 nike

DynamoDB 上有映射数据类型的记录,我想在 EMR 上使用 HiveQL 将这些记录以 JSON 数据格式导出到 S3。你怎么做这个?可能吗?

我阅读了以下文档,但我想要的信息不算什么。

我尝试了以下步骤:

  1. 在 DynamoDB 上创建表

    TableName: DynamoDBTable1
    HashKey: user_id
  2. 插入两条记录到DynamoDB

    # record1
    user_id: "0001"
    json: {"key1": "value1", "key2": "value2"}

    # record2
    user_id: "0001"
    json: {"key1": "value1", "key2": "value2"}
  3. 从 DynamoDB 在 EMR 上创建表

    CREATE EXTERNAL TABLE test (user_id string, json map<string, string>)
    STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
    TBLPROPERTIES ("dynamodb.table.name" = "DynamoDBTable",
    "dynamodb.column.mapping" = "user_id:user_id,json:json");
  4. 导出记录到S3

    INSERT OVERWRITE DIRECTORY 's3://some-bucket/exports/' select json from test where user_id = '0001';
  5. 确认是S3 bucket,但是导出的数据不是JSON格式...

    # Expected
    [
    {"key1": "value1", "key2": "value2"},
    {"key1": "value1", "key2": "value2"}
    ]

    # Actual
    key1^C{"s":"value1"}^Bkey2^C{"s":"value2"}
    key1^C{"s":"value1"}^Bkey2^C{"s":"value2"}

最佳答案

DynamoDBStorageHandler 类不支持以下 DynamoDB 数据类型,因此它们不能与 dynamodb.column.mapping 一起使用:

map ,列表, bool 值,空

关于amazon-web-services - 如何使用 EMR 上的 HiveQL 将 DynamoDB 上的 Map 数据类型列导出到具有 JSON 数据类型的 S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com