gpt4 book ai didi

amazon-web-services - 如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理引号 (CSV) 中的字段

转载 作者:行者123 更新时间:2023-12-03 13:44:13 24 4
gpt4 key购买 nike

我正在尝试使用 EMR/Hive 将数据从 S3 导入 DynamoDB。我的 CSV 文件包含用双引号括起来并用逗号分隔的字段。
在 hive 中创建外部表时,我可以将分隔符指定为逗号,但如何指定字段包含在引号内?

如果我不指定,我会看到 DynamoDB 中的值填充在两个双引号“值”中,这似乎是错误的。

我正在使用以下命令创建外部表。有没有办法指定字段用双引号括起来?

CREATE EXTERNAL TABLE emrS3_import_1(col1 string, col2 string, col3 string, col4 string)  ROW FORMAT DELIMITED FIELDS TERMINATED BY '","' LOCATION 's3://emrTest/folder';

任何建议,将不胜感激。
谢谢
日滕德拉

最佳答案

我也遇到了同样的问题,因为我的字段用双引号括起来并用分号(;)分隔。我的表名是employee1。

所以我搜索了链接,我找到了完美的解决方案。

为此,我们必须使用 serde。请使用此链接下载 serde jar:https://github.com/downloads/IllyaYalovyy/csv-serde/csv-serde-0.9.1.jar

然后使用 hive 提示执行以下步骤:

add jar path/to/csv-serde.jar;

create table employee1(id string, name string, addr string)
row format serde 'com.bizo.hive.serde.csv.CSVSerde'
with serdeproperties(
"separatorChar" = "\;",
"quoteChar" = "\"")
stored as textfile
;

然后使用以下查询从给定路径加载数据:
load data local inpath 'path/xyz.csv' into table employee1;

然后运行:
select * from employee1;

现在你会看到魔法。谢谢。

关于amazon-web-services - 如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理引号 (CSV) 中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061466/

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