我在sql server中有一个名为“employee”的表:
ID NAME ADDRESS DESIGNATION
1 Jack XXX Clerk
2 John YYY Engineer
我在配置单元中创建了一个外部表(emp),并通过sqoop import使用sqoop的--query参数将数据从employee导入到配置单元表中。如果我提到--queryas' select * from employee
'然后数据被正确地插入到配置单元表中。但是如果我提到--query as' select ID,NAME,DESIGNATION
“from employee”则“employee”表(rdbms)的designation列中的数据将插入到“emp”表的address列中,而不是插入到designation列中。当我运行以下配置单元查询时:
select designation from emp;
我得到的值为:null而不是:clerk engineer,但是如果我运行配置单元查询为:
select address from emp;
我得到的值是:clerk engineer而不是:null。任何修复此错误数据的想法都会有很大帮助。我当前使用的是0.11版本的配置单元,因此无法使用0.14版本的配置单元插入查询。
2条答案
按热度按时间knpiaxh11#
sqoop语句将数据导入hdfs目录为(假设字段分隔符为,)
所以地址列将有指定数据,指定列将为空
您可以尝试——查询“selectid,name,”,designation from employee”,这应该可以
6l7fqoea2#
好的,我给你看一个样品。
一些参数是可选的。
sqoop语法详细信息:http://sqoop.apache.org/docs/1.4.2/sqoopuserguide.html#_literal_sqoop_import_literal