【发布时间】:2016-09-04 03:11:03
【问题描述】:
这已导入正确数量的记录,但我的 Hive 选择命令给了我 NULL 数据值。
hive> select * from widgets;
OK
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL NULL
Time taken: 0.179 seconds, Fetched: 6 row(s)
我正在使用以下命令将数据从 MySQL 表导入 Hive 表:
sqoop import
--connect jdbc:mysql://localhost/kmdb
--table widgets
-m 1
--hive-import
--hive-table widgets
我的架构看起来不错,如下所示:
hive> 描述小部件;
好的
id int
小部件名称字符串
价格翻倍
设计日期字符串
版本 int
design_comment 字符串
耗时:0.268 秒,提取:6 行
我的数据看起来也不错,如下所示:
$ hdfs dfs -cat /user/hive/warehouse/widgets/part-m-00000_copy_1
1sprocket0.252010-02-101Connects two gizmos
2gizmo4.002009-11-304null
3gadget99.991983-08-1313Our flagship product
(注意:我可以在控制台上看到字段分隔符特殊字符,但由于某些渲染,它们没有显示在此处。)
背景:该表实际上是使用另一个 sqoop 命令创建的:
$sqoop create-hive-table
--connect jdbc:mysql://localhost/kmdb
--table widgets
--fields-terminated-by ','
这有什么不同吗?
有什么想法吗?
【问题讨论】:
-
在触发这个命令之前表
widgets是否存在? -
是的,我使用另一个 sqoop 命令创建了表:>sqoop create-hive-table --connect jdbc:mysql://localhost/kmdb --table widgets --fields-terminated-by ' ,'