2016-09-29 19 views
0

我試圖使用參數--query在sqoop使用MySQL的函數

--query "select replace(name, '\\0', '')" from example e 

執行這樣

SELECT replace(name, '\0', '') FROM example 

查詢,但這種方法返回錯誤

ERROR tool.ImportTool: Imported Failed: No column by the name namefound while importing data; expecting one of [id, REPLACE_name___0_____] 

任何想法如何解決這個問題?

回答

1

首先,您需要正確地包含SQL語句。然後你需要用「/」轉義「\」字符。

請檢查下面爲我工作:

sqoop import \ 
    --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \ 
    --username=retail_dba \ 
    --password=cloudera \ 
    --query "select replace(department_name, '/\0', '*') from departments where 1=1 and \$CONDITIONS" \ 
    --split-by "department_name" \ 
    --target-dir "/km/op_sqoop/dept_names" \ 
    -m 1 

EVAL還曾:

sqoop eval \ 
    --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \ 
    --username retail_dba \ 
    --password cloudera \ 
    --query "select department_id, department_name, replace(department_name, '/\0', '*') from departments" 

我沒有,雖然讓你的錯誤。希望能幫助到你。