Команда Sqoop с параметром --query в Scala с использованием Process ("").! не работает - PullRequest
2 голосов
/ 10 мая 2019

Я пытаюсь запустить команду Sqoop с параметром - query в оболочке Scala, используя Process("<sqoop command>").!, но она показывает ошибку, описанную ниже.

Если я использую - таблицу вместо - запрос , это работает как шарм.

Но для моего требования мне нужно использовать - запрос .

Ошибка, которую он выдает:

ERROR tool.BaseSqoopTool: Error parsing arguments for import:  
ERROR tool.BaseSqoopTool: Unrecognized argument: *  
ERROR tool.BaseSqoopTool: Unrecognized argument: from  

и т. Д.

Заранее спасибо

Приведенный ниже код корректно работает в оболочке Spark-Scala.

Process("""sqoop import <queuename> --connect <connection-string-db2> -- 
    username <username> --password <password> --table "<database.table>" -- 
    target-dir <target directory> --delete-target-dir --fields-terminated-by 
    '\\001' --lines-terminated-by '\\n' --null-string '\\\\N' --null-non- 
    string '\\\\N' --hive-drop-import-delims -m 1""").!    

Но когда я изменяю - таблицу на - запрос (и использую любой базовый запрос, например "SELECT * FROM DATABASE.TABLE"), он неработа ... Ниже приведена команда, которая не работает:

Process("""sqoop import <queuename> --connect <connection-string-db2> -- 
    username <username> --password <password> --query "SELECT * FROM 
    DATABASE.TABLE AND \$CONDITIONS" --target-dir <target directory> -- 
    delete-target-dir --fields-terminated-by '\\001' --lines-terminated-by 
    '\\n' --null-string '\\\\N' --null-non-string '\\\\N' --hive-drop- 
    import-delims -m 1""").!  

1 Ответ

0 голосов
/ 27 мая 2019

Я думаю, вам нужно избегать двойных кавычек после --query.

...