gpt4 book ai didi

csv - 将 csv 文件的全部内容加载到 Hive 表中的单个列中

转载 作者:可可西里 更新时间:2023-11-01 14:51:53 26 4
gpt4 key购买 nike

在 Hive 相关问题上需要一些帮助。

我正在尝试将整个 csv 文件加载到单列 Hive 表中。文件中的每个条目都应该是 Hive 表中的一行。我试图更改 ROW FORMAT - 特别是尝试更改为 LINES TERMINATED BY ',' 而不是 '\n'。但是,目前仅支持 '\n' 字符。目前这是一个 JIRA 问题 ( https://issues.apache.org/jira/browse/HIVE-11996 )。

我目前唯一的想法是通过 linux 命令用\n 替换文件中的逗号,但是我想看看是否有人可以提出一些其他值得考虑的解决方案。

提前致谢!

最佳答案

您可以在 Hive 中创建一个临时表,然后分别选择每一列。让我们在 HDFS“/tmp/test.csv”中创建一个包含以下内容的测试文件:

col1,col2,col3

col4,col5,col6

col7,col8,col9

如果您创建这个临时表:

CREATE TABLE tmp_csv(c1 STRING, c2 STRING, c3 STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";

LOAD DATA INPATH '/tmp/test.csv' OVERWRITE INTO TABLE tmp_csv;

然后您可以使用以下内容重建您的表:

CREATE TABLE final_csv AS SELECT * FROM 
( SELECT t1.c1 as col FROM tmp_csv t1
UNION ALL
SELECT t2.c2 as col FROM tmp_csv t2
UNION ALL
SELECT t3.c3 as col FROM tmp_csv t3
)combined;

table final_csv 的内容是这样的:

col1
col4
col7
col2
col5
col8
col3
col6
col9

关于csv - 将 csv 文件的全部内容加载到 Hive 表中的单个列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622278/

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