Sqoop导入:命令--password:命令未找到,--table:命令未找到

问题描述:

我必须编写一个scoop导入脚本,它从数据la_crime中仅从2016年起提取某些列我的脚本低于“Sqoop导入:命令--password:命令未找到,--table:命令未找到

sqoop import \ 
--connect jdbc:mysql://XXXXXXXXXXX \ 
--driver com.mysql.jdbc.Driver \ 
--username XXXX \ 
--password XXXX \ 
--table la_crime \ 
--query "SELECT DR_NUMBER,DATE_REPORTED,DATE_OCCURED,TIME_OCCURED,AREA_ID,AREA_N AME,REPORTING_DISTRICT,CRIME_CODE,CRIME_CODE_DESC,VICTIM_AGE,VICTIM _GENDER,VICTIM_DESCENT,ADDRESS,CROSS_STREET,AUTO_ID FROM la_crime WHERE\$YEAR=2016\ 
--target-dir /user/sqoop_script \ 
-m 1 

你能告诉我,如果我的代码是错的地方我有什么变化,使

您可以使用下面的语法来导入:??

sqoop进口\

--connect JDBC:MySQL的://本地主机/ yourdatabase \

--driver com.mysql.jdbc.Driver \

--username XXXX \

--password XXXX \

--table la_crime \

--query“SELECT DR_NUMBER,DATE_REPORTED,DATE_OCCURED,TIME_OCCURED,AREA_ID,AREA_N AME,REPORTING_DISTRICT,CRIME_CODE,CRIME_CODE_DESC,VICTIM_AGE,V ICTIM _gender,VICTIM_DESCENT,ADDRESS,CROSS_STREET,AUTO_ID FROM la_crime WHERE $ YEAR = 2016' \

--target-DIR /用户/ sqoop_script \

-m 1

详情,请参阅“ Sqoop User Guide“。

您尝试的命令在query选项中有些问题,首先需要在最后关闭双引号。其次,对于我来说,使用变量来指定过滤年份的列似乎很奇怪。

;第三,如果使用query选项是强制性的,以包括$CONDITIONS令牌既然你使用双引号来发出查询你需要\$CONDITIONS而不是仅仅$CONDITIONS来把它当作一个shell禁止你的shell变量。

此外,如果您使用的是query选项,则不应使用table选项。

我认为这将是你要找的命令:

sqoop import \ 
--connect jdbc:mysql://XXXXXXXXXXX \ 
--driver com.mysql.jdbc.Driver \ 
--username XXXX \ 
--password XXXX \ 
--query "SELECT DR_NUMBER,DATE_REPORTED,DATE_OCCURED,TIME_OCCURED,AREA_ID,AREA_N AME,REPORTING_DISTRICT,CRIME_CODE,CRIME_CODE_DESC,VICTIM_AGE,VICTIM _GENDER,VICTIM_DESCENT,ADDRESS,CROSS_STREET,AUTO_ID FROM la_crime WHERE YEAR = 2016 AND $CONDITIONS" \ 
--target-dir /user/sqoop_script \ 
-m 1