下面是我的表格创建和我的csv示例;
DROP TABLE IF EXISTS xxx.fbp;
CREATE TABLE IF NOT EXISTS xxx.fbp (id bigint, p_name string, h_name string, ufi int, city string, country string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
74905,,xyz,-5420642,法国城市一号
74993,,zyx,-874432,德国城市
75729,,yzx,-1284248,城市二长名,法国
然后使用以下查询将数据加载到配置单元表中:
LOAD DATA
INPATH '/user/xxx/hdfs_import/fbp.csv'
INTO TABLE xxx.fbp;
似乎有数据从表的第5列泄漏到第6列。所以,我在我的国家专栏里看到了城市数据。
SELECT country, count(country) from xxx.fbp group by country
+---------+------+
| country | _c1 |
| Germany | 1143 |
| City | 1 |
+---------+------+
我不知道为什么城市数据偶尔会被导入国家栏。csv是从googlesheets下载的,我已经删除了标题。
2条答案
按热度按时间enyaitl31#
问题出在csv本身。包含一些列,例如p.name
,
在几个领域。这将导致行结束时间比预期的要早。我必须清理数据并删除所有,
. 之后,它正确导入。很快就完成了python。ctrmrzij2#
原因可能是您的行终止不是'\n',基于windows的工具添加了额外的字符,这会造成问题。也可能是您使用列分隔符创建了feild。
解决方案:1。试着打印一行有'where country=city'子句的问题,这会让你知道hive是如何创建记录的。2尝试二进制存储格式以100%确定配置单元处理的数据。
希望有帮助。