Sqoop匯入hive注意事項

2021-06-26 16:34:11 字數 809 閱讀 5611

sqoop從oracle匯入資料到hive,示例:

sqoop import --connect jdbc:oracle:thin:@oracle-host:port:orcl --username name--password passwd --hive-import -table tablename

如果不加其他引數,匯入的資料預設的列分隔符是'\001',預設的行分隔符是'\n'。

這樣問題就來了,如果匯入的資料中有'\n',hive會認為一行已經結束,後面的資料被分割成下一行。這種情況下,匯入之後hive中資料的行數就比原先資料庫中的多,而且會出現資料不一致的情況。

sqoop也指定了引數--fields-terminated-by--lines-terminated-by來自定義行分隔符和列分隔符。

可是當你真的這麼做時.........o(╯□╰)o就會出現如下錯誤:

info hive.hiveimport: failed: semanticexception 1:381 lines terminated by only supports newline '\n' right now.
也就是說雖然你通過--lines-terminated-by指定了其他的字元作為行分隔符,但是hive只支援'\n'作為行分隔符。

簡單的解決辦法就是加上引數--hive-drop-import-delims來把匯入資料中包含的hive預設的分隔符去掉。

sqoop資料匯出注意事項

1.hive pgsql 資料由hdfs中的hive表匯出到關聯式資料庫pgsql中,匯出資料時,關係型資料庫中的存放匯入資料的表需要遵以下規則 hive中資料字段列型別順序和pgsql中表字段列型別順序一致,sqoop匯出時,sqoop不是將hive欄位匯出到對應pgsql表字段中,所以匯出時,一...

Hive相關注意事項

1.load data locall inpath into table xx 如果是本地路徑,其實就是一次put上傳操作 如果路徑是hdfs,其實是一次mv操作 2.建立分割槽表partitioned by 字段不能和表中列的字段重複 3.建立分桶表cluster by 必須是表中的某列的字段 4...

hive 表連線操作注意事項

1.hive jion 只支援等值連線 2.hive jion目前不支援在on子句中使用謂詞or 3.on子句中的分割槽過濾條件在outer join中是無效的,但是在inner join中是可以用的 4.hive 中不支援in和not in 對於in 在hive中可以使用left semi joi...