Sqoop 命令与 --query 在 Scala 中使用 Process( "<sqoop command>" )。!不工作



我正在尝试使用 Process("<sqoop command>").!上的scala shell上的选项运行一个sqoop命令,但它显示了下面描述的错误。

如果我使用 - table 而不是 - 查询,它的工作方式就像魅力。

但是,对于我的要求,我需要使用 - query

它给出的错误是:

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

等。

预先感谢

以下代码在Spark-Scala Shell中正常工作。

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""").!    

但是,当我更改 - table by - 查询(并使用其中的任何基本查询,例如"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""").!  

我认为您需要在 - Query之后逃脱双引号。

最新更新