gpt4 book ai didi

amazon-web-services - 使用 Hive 创建 DynamoDB 表

转载 作者:行者123 更新时间:2023-12-04 04:51:41 25 4
gpt4 key购买 nike

我在我的云中的 S3 存储桶中有一个包含一些数据的 CSV 文件。

我想将该数据导出到包含“key”和“value”列的 DynamoDB 表中。

这是我编写的当前配置单元脚本:

CREATE EXTERNAL TABLE FromCSV(key string, value string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ', '
LOCATION 's3://mybucket/output/';

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

INSERT OVERWRITE TABLE hiveTransfer SELECT * FROM FromCSV;

现在,基本上脚本可以工作了。虽然我想对这个脚本做一些修改,如下所示:

1) 该脚本仅在 DynamoDB 中已存在表“InvertedIndex”时才有效,我希望脚本自行创建新表,然后按原样放置数据。

2) 在 CSV 中,键总是一个字符串,但我有 2 种值,字符串或整数。我希望脚本能够区分两者并制作两个不同的表格。

对这两个修改的任何帮助都将得到帮助。
谢谢

最佳答案

嗨,这可以完成,但这不是小事。

1) 用于创建 hive 无法完成的 dynamo 表,因为 Dynamo 表由 Amazon 云管理。我想到的一件事是创建 Hive UDF 来创建 dynamo 表,并在运行插入之前在一些虚拟查询中调用它。例如:

 SELECT CREATE_DYNO_TABLE() FROM dummy;

其中虚拟表只有一条记录。

2) 您可以将加载拆分为两个查询,在一个查询中,您将使用 RLIKE 运算符和 [0-9]+ 正则表达式来检测数值,而其他只是对数值的否定。

哈,
迪诺

关于amazon-web-services - 使用 Hive 创建 DynamoDB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17336390/

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