gpt4 book ai didi

mysql - 我怎么能忽略分号;在 & 当我从 .csv 文件创建 Hive 表时

转载 作者:可可西里 更新时间:2023-11-01 14:58:35 25 4
gpt4 key购买 nike

接续这个问题How can I make a Hive table from a .csv file which has one column with fields delimiited by semicolon ;

我的 csv 文件中的一些标题/出版商有“&”;在它们中以及包含它们的行被误读,因为它们在 & 符号代码中的分号和每个字段的末尾被过早地分割。

如何修改这段代码:

CREATE TABLE books (ISBN STRING, Title STRING, Author STRING, Year STRING, Publisher STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\;";
LOAD DATA INPATH '/path/to/my/datafile' INTO TABLE books;

所以它不这样做?

我的 csv 文件中有问题的行示例是:

 0743403843;"Decipher";"Stel Pavlou";"2002";"Simon & Schuster (Trade Division)"

出版商专栏未被正确阅读。

我知道我可以在手动删除 (&); 之前对 csv 进行 sanitizer 但可以告诉我如何在 Hive 或其他 Hadoop 工具中做到这一点吗?

最佳答案

你能试试这个吗?

hive> CREATE TABLE test_regex(
> isbn STRING,
> title STRING,
> author STRING,
> year STRING,
> publisher STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
> WITH SERDEPROPERTIES ("input.regex" =
> "(.*)\;\"(.*)\"\;\"(.*)\"\;\"(.*)\"\;\"(.*)\"",
> "output.format.string" = "%1$s %2$s %3$s %4$s %5s")
> STORED AS TEXTFILE;
OK
Time taken: 4.139 seconds

hive> load data local inpath 'input.csv' overwrite into table test_regex;
OK
Time taken: 0.393 seconds


hive> select isbn,publisher from test_regex;
ISBN Publisher
0002005018 HarperFlamingo Canada
0399135782 Putnam Pub Group
0743403843 Simon & Schuster (Trade Division)
Time taken: 4.522 seconds

hive> select *from test_regex;
OK
ISBN Title Author Year Publisher
0002005018 Clara Callan Richard Bruce Wright 2001 HarperFlamingo Canada
0399135782 The Kitchen God's Wife Amy Tan 1991 Putnam Pub Group
0743403843 Decipher Stel Pavlou 2002 Simon & Schuster (Trade Division)
Time taken: 0.253 seconds

关于mysql - 我怎么能忽略分号;在 & 当我从 .csv 文件创建 Hive 表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627974/

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