问题描述
通过Sqoop将mysql的数据导入hive,查看数据是正确的,但是select语句查出来都是NULL,仔细观察才发现建表的时候指定的分隔符和Sqoop导入时候参数给的不一致
问题解决
将两者改为一致即可
分别是建表时候的
hive的row format delimited fields terminated by
和
Sqoop的fields-terminated-by
CREATE EXTERNAL TABLE ods_order (
`id` BIGINT,
`account_id` BIGINT,
`device_id` BIGINT,
`compensation_id` BIGINT,
`order_status` STRING,
`created_at` STRING,
`start_time` STRING,
`updated_at` STRING,
`end_time` STRING,
`parent_id` BIGINT,
`level` STRING,
`maxOrderTime` STRING
)
row format delimited fields terminated by '\t'
LOCATION '/warehouse/facility/business/ods/ods_order';
bin/sqoop import \
--connect jdbc:mysql://:3306/demo?zeroDateTimeBehavior=CONVERT_TO_NULL \
--username root \
--password "" \
--table order \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table business.ods_order