在Hive中导入表后显示错误计数

时间:2012-02-08 10:58:20

标签: hive sqoop

我从MS SQL Server导入了Hive中大约10个表。 但是当我尝试在其中一个表中交叉检查Hive中的记录时,我在运行查询时找到了更多记录(从tblName中选择count(*);)。

然后我删除该表并再次将其导入Hive。我在Console Logs中观察到(检索了203条记录)。 然后我再次尝试(从tblName中选择count(*);)我得到了298的计数。

我不明白为什么会这样。查询中是否有任何错误,或者由于某些不正确的sqoop-import命令而发生。

所有其他表记录都没问题。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:7)

我从邮件列表中找到了这个问题的解决方案,我想分享一下。 他们的答复如下:

我们过去遇到了类似的问题 - hive中的表似乎有比报告由sqoop导入的更多的行,并且实际上在数据库中可用。

我们这边描述的问题是导出数据中的字符不正确,导致导出的测试CSV文件中的行被破坏。例如,我们的一些行包含带有换行符的数据。由于一对导出的行被拆分为更多行,因此hive行的数量似乎大于导入数量。您可能遇到了类似的问题。我们已使用参数--hive-drop-import-delims(或您可以使用--hive-delims-replacement)解决了该问题。有关语义和用法,请考虑查看手册:

http://incubator.apache.org/sqoop/docs/1.4.0-incubating/SqoopUserGuide.html#id1765770

由于