使用curl的HDInsight中的Sqoop执行不起作用

使用curl的HDInsight中的Sqoop执行不起作用,curl,sqoop,Curl,Sqoop,我们在参数“-query”中提供的select查询失败 命令 curl-u:-d user.name=-d command=“导入--连接jdbc:sqlserver://:1433;数据库=--用户名--密码--查询\\”选择\\*\\from\\MEDICAL\u DEP\u EMPS\\“--append--target diradl://.azuredatalakestore.net//sheriff/testnewrdbmstoadld --临时根目录adl://.azuredatal

我们在参数“-query”中提供的select查询失败

命令 curl-u:-d user.name=-d command=“导入--连接jdbc:sqlserver://:1433;数据库=--用户名--密码--查询\\”选择\\*\\from\\MEDICAL\u DEP\u EMPS\\“--append--target diradl://.azuredatalakestore.net//sheriff/testnewrdbmstoadld --临时根目录adl://.azuredatalakestore.net//sheriff/testnewrdbmstoadld/temp --as textfile--由“--转义为/--null string\\N--null non string\\N--字段终止于,--可选地由/-m 1“-d statusdir=”括起adl://.azuredatalakestore.net/tmp/dataingestion/3802/statusdirec1"

日志: 12月19日15:11:36信息sqoop.sqoop:运行sqoop版本:1.4.6.2.6.5.3009-43 19/12/12 15:11:36警告工具。BaseSoopOpToo:在命令行上设置密码是不安全的。 19/12/12 15:11:36 INFO manager.SqlManager:使用默认的fetchSize 1000 19/12/12 15:11:36信息工具.CodeGenTool:开始生成代码 19/12/12 15:11:36错误工具。导入工具:运行导入作业时遇到IOException:java.io.IOException:Query[\“select\*\from\MEDICAL\u DEP\u EMPS\”]必须在WHERE子句中包含“$CONDITIONS”。

Sqoop--Query选项希望您在自由形式的select查询中传递$CONDITIONS

您可以参考“7.2.2”。选择要导入的数据“和”7.2.3。“自由形式查询导入”在

虽然下面的链接不是“curlforsqoop导入”,但我希望它能帮助您

示例: 使用单个映射器时,整个选定数据将由一个映射器按顺序传输

 --query 'SELECT * FROM a WHERE $CONDITIONS' -m 1 
如果使用双引号,则需要添加\以避免替换

 --query "SELECT * FROM a WHERE \$CONDITIONS" -m 1 
使用多个映射程序时,在基于--split by子句进行拆分并替换$CONDITIONS后,所有映射程序将并行传输选定的数据

 --query 'SELECT * FROM a WHERE $CONDITIONS' -m 3 --split-by a.column 

这是HDInsight和Azure PG确认的问题。

是的。我尝试了所有案例。但问题是,HDInsight在包含--query时无法识别sqoop命令。在Culr to HDInsight中,我们将使用“command=" . 在Cloudra/Hortonwork中也使用相同的sqoop。如果您实际上是从表中选择所有列,请尝试在import命令中使用--table选项。您还可以对特定列使用--table和--columns选项的组合。