天天看點

sqoop使用時一些小知識點

1.mysql資料庫裡面的字段是 tinyint 類型,通過sqoop 抓取出來的資料在HDFS 上面顯示的true、false

解決辦法:在連接配接上加上一句話tinyInt1isBit=false 即 jdbc:mysql://localhost/test?tinyInt1isBit=false

2.如果你指定了\n為sqoop導入的換行符,mysql的某個string字段的值如果包含了\n, 則會導緻sqoop導入多出一行記錄

-hive-drop-import-delims     Drops \n, \r, and \01 from string fields when importing to Hive.

3.後續補充

完整的語句:sqoop import \

--connect jdbc:mysql://url:3306/b2b?tinyInt1isBit=false \

--username user \

--password 'password' \

--table tb_order \

-hive-drop-import-delims \

--fields-terminated-by '\001' \

--lines-terminated-by '\n' \

--delete-target-dir \

--num-mappers 1 \

--hive-import \

--hive-database database \

--hive-table table

-hive-drop-import-delims