2016-09-29 6 views
0

私はsqoop使用のMySQL関数は

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

に引数--queryを使用して、この

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" 

でも、私はあなたのエラーを取得できませんでした。それが役に立てば幸い。

関連する問題