Sqoop版本:1.4.6.2.3.4.0-3485如何在sqoop中指定多个条件?
我一直在尝试使用sqoop使用以下命令导入数据:
sqoop import -libjars /usr/local/bfm/lib/java/jConnect-6/6.0.0/jconn3-6.0.0.jar --connect jdbc:sybase:db --username user --password 'pwd' --driver com.sybase.jdbc3.jdbc.SybDriver --query 'SELECT a.* from table1 a,table2 b where b.run_group=a.run_group and a.date<"7/22/2016" AND $CONDITIONS' --target-dir /user/user/a/ --verbose --hive-import --hive-table default.temp_a --split-by id
我得到以下错误:
Invalid column name '7/22/2016'
我试图包围在双引号中查询,但随后说:
CONDITIONS: Undefined variable.
尝试了单个/双引号的几个组合,并转义$ CONDITIONS并使用--where开关。
PS:条件是非数字的。 (它的工作原理的案件类似,其中x < 10左右,但不是在情况下它是一个字符串或日期)
当你试图用双引号括住整个查询,而其他字符串在单个引号中时,是否在$ CONDITIONS之前添加了反斜杠?就像这样:--query“SELECT a。*(...)and a.date <'7/22/2016'AND \ $ CONDITIONS”我读过你试图逃避$条件,但它只是为了确定你尝试过的不同组合。 –
这个查询在RDBMS客户端上工作:'SELECT a。* from table1 a,table2 b where b.run_group = a.run_group and a.date <“7/22/2016”' –
如果它正在工作,那么请尝试'“SELECT a。* from table1 a,table2 b其中b.run_group = a.run_group和a.date <'7/22/2016'AND \ $ CONDITIONS“'由Jaime建议 –