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

时间:2017-10-17 00:42:34

标签: mysql azure hadoop sqoop

我必须编写一个scoop导入脚本,该脚本仅从2016年开始从数据la_crime中提取某些列 我的脚本低于"

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

你能告诉我我的代码在某处是否有问题吗?我需要做些什么改变?

2 个答案:

答案 0 :(得分:0)

您可以使用以下语法导入:

sqoop import \

- 连接jdbc:mysql:// localhost / yourdatabase \

- 驱动程序com.mysql.jdbc.Driver \

- 用户名XXXX \

- 密码XXXX \

- 表la_crime \

- 查询'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 User Guide”。

答案 1 :(得分:0)

您尝试的命令在query选项中出现了一些问题,首先您需要在结尾处关闭双引号。其次,我使用变量指定过滤年份的列似乎很奇怪。

第三,如果您使用query选项,则必须包含$CONDITIONS令牌,并且由于您使用双引号发出查询,因此您需要{{ 1}}而不仅仅是\$CONDITIONS来禁止你的shell将其视为shell变量。

此外,如果您使用$CONDITIONS选项,则不应使用query选项。

我认为这将是您正在寻找的命令:

table