2016-03-10 7 views
-1

Я попытался импортировать определенные строки из таблицы MySQL в HDFS, используя флаг sqoop --where, но результаты были не такими, как ожидалось.Sqoop Import "--where" flag

Команда:

sqoop import \ 
    --connect "jdbc:mysql://XXXX.YYYY/XXXX/retail_db" \ 
    --username XXXX \ 
    --password XXXX \ 
    --query "select * from departments where \$CONDITIONS \ 
    --where "department_id < 5" \ 
    --target-dir /XXX/YYY/departments \ 
    --split-by department_id 

MySQL строки таблицы:

department_id department_name 
------------- --------------- 
2    Fitness 
3    Footwear 
4    Apparel 
5    Golf 
6    Outdoors 
7    Fanshop 
8000   Test 

После выполнения команды, ожидаемый результат должен быть в идеале первые 3 строки с department_ids 2,3 и 4, но вместо этого импортируются все строки. Может кто-нибудь объяснить?

ответ

0

Sqoop не знает флаг WHERE.

Изменить запрос

--query "select * from departments where \$CONDITIONS \ 
     department_id < 5 \ 
     AND \$CONDITIONS" \ 

и удалить строку

--where "department_id < 5" \ 

запрос должен работать нормально.