gpt4 book ai didi

hive - 将数据导入包含空格的 Hive

转载 作者:行者123 更新时间:2023-12-04 05:15:28 27 4
gpt4 key购买 nike

我正在将数据从 csv 文件导入 Hive。我的表包含字符串和整数。但是,在我的输入文件中,整数周围有空格,所以它看起来像这样:

some string,     2    ,another string  ,    7    , yet another string

不幸的是,我无法控制提供文件的程序的格式。

当我使用(例如)导入数据时:
CREATE TABLE MYTABLE(string1 STRING, alpha INT, string2 STRING, beta INT, string3 STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

然后我所有的整数都设置为 NULL。我假设这是因为额外的空格使解析失败。有没有办法解决这个问题?

最佳答案

您可以执行多阶段导入。在第一阶段,将所有数据保存为 STRING在第二阶段使用 trim()删除空格,然后将数据保存为 INT .您还可以考虑使用 Pig 从源文件中读取数据作为原始文本,然后将其以正确的数据类型写入 Hive。

编辑

如果您可以将源文件作为外部表指向,您也可以一次性完成此操作。

CREATE TABLE myTable(
string1 STRING, alpha STRING, string2 STRING, beta STRING, string3 STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '\\server\path\file.csv'

INSERT INTO myOtherTable
SELECT string1,
CAST(TRIM(alpha) AS INT),
string2,
CAST(TRIM(beta) AS INT),
string3
FROM myTable;

关于hive - 将数据导入包含空格的 Hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14338495/

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