gpt4 book ai didi

hadoop - sqoop 将数据插入 rdbms 表中的错误配置单元列

转载 作者:行者123 更新时间:2023-12-02 21:28:02 25 4
gpt4 key购买 nike

我在 SQL Server 中有一个名为“employee”的表:

ID  NAME    ADDRESS   DESIGNATION
1 Jack XXX Clerk
2 John YYY Engineer

我在 hive 中创建了一个外部表 (emp),并通过 sqoop 导入使用 sqoop 的 --query 参数将数据从员工导入到 hive 表。如果我提到 --query 为 ' select * from employee ' 然后数据被正确插入到 hive 表中。但是如果我提到 --query 为 ' select ID,NAME,DESIGNATION '来自员工',然后'employee'表(rdbms)的DESIGNATION列中的数据被插入到'emp'表的地址列而不是插入到指定列。当我运行以下配置单元查询时:
select designation from emp;

我得到的值为:
空值
空值
而不是:文员
工程师
但是,如果我将配置单元查询运行为:
select address from emp;

我得到的值为:
文员
工程师
而不是 :NULL
空值
修复此不正确数据的任何想法都会有很大帮助。我目前使用的是 0.11 版本的配置单元,所以我不能使用 0.14 配置单元版本中提供的配置单元插入查询。

最佳答案

好的,我给你看一个样本。

sqoop import --connect jdbc:mysql://host:port/db'?useUnicode=true&characterEncoding=utf-8' \
--username 'xxxx' \
--password 'xxxx' \
--table employee \
--columns 'ID,NAME,DESIGNATION' \
--where 'aaa=bbb' \
-m 1 \
--target-dir hdfs://nameservice1/dir \
--fields-terminated-by '\t' \
--hive-import \
--hive-overwrite \
--hive-drop-import-delims \
--null-non-string '\\N' \
--null-string '\\N' \
--hive-table 'hive_db.hive_tb' \
--hive-partition-key 'pt' \
--hive-partition-value '2016-01-20'

并且一些参数是可选的。

sqoop 语法细节:
http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_literal_sqoop_import_literal

关于hadoop - sqoop 将数据插入 rdbms 表中的错误配置单元列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com