我必须编写一个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
你能告诉我我的代码在某处是否有问题吗?我需要做些什么改变?
答案 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