gpt4 book ai didi

hadoop - 如何在sqoop中指定多个条件?

转载 作者:行者123 更新时间:2023-12-02 21:16:49 24 4
gpt4 key购买 nike

Sqoop版本:1.4.6.2.3.4.0-3485

我一直在尝试使用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左右的情况,但不适用于字符串或日期的情况)

最佳答案

在您的命令中--split-by=id应该是--split-by=a.id,我将使用join而不是添加额外的where条件,还将日期转换为(指定的字符串值)VARCHR(使用sybase特定功能)

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 join table2 b on a.id=b.id where a.run_group=b.run_group and convert(varchar, a.date, 101) < '7/22/2016' AND \$CONDITIONS" \
--target-dir /user/user/a/ \
--verbose \
--hive-import \
--hive-table default.temp_a \
--split-by a.id

关于hadoop - 如何在sqoop中指定多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38575294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com