【发布时间】:2023-04-02 00:30:01
【问题描述】:
我正在尝试将一个 CSV 文件插入 Hive,其中一个字段是字符串数组。
这是 CSV 文件:
48,Snacks that Power Up Weight Loss,Aidan B. Prince,[Health&Fitness,Travel]
99,Snacks that Power Up Weight Loss,Aidan B. Prince,[Photo,Travel]
我尝试创建类似这样的表:
CREATE TABLE IF NOT EXISTS Article
(
ARTICLE_ID INT,
ARTICLE_NSAME STRING,
ARTICLE_AUTHOR STRING,
ARTICLE_GENRE ARRAY<STRING>
);
LOAD DATA INPATH '/tmp/pinterest/article.csv' OVERWRITE INTO TABLE Article;
select * from Article;
这是我得到的输出:
article.article_id article.article_name article.article_author article.article_genre
48 Snacks that Power Up Weight Loss Aidan B. Prince ["[Health&Fitness"]
99 Snacks that Power Up Weight Loss Aidan B. Prince ["[Photo"]
它在最后一个字段 article_genre 中只取一个值。
有人能指出这里有什么问题吗?
【问题讨论】:
-
我现在不在我的沙箱附近,所以我不能告诉你正确的答案,但我可以告诉你它正在将输入行中的逗号视为新列 - 即使在您希望被视为数组的字段。因此,在您加载的第一行中,
[Health&Fitness存储为ARTICLE_GENRE,而“新列”Travel]将被忽略。您的第四列不是 Hive 期望的数组格式。