一. 解決方案
1.首先檢視source表的表結構及資料,可大概判斷出哪些欄位的值中可能包含分隔符。使用 欄位名 like '%分割符%』,能準確判斷出此字段是否包含分隔符,如果包含可選擇其它分隔符試試,如果能挑選和資料不衝突的分隔符,那麼sqoop就可以選定此分隔符。
2.這次遇到的表,什麼分隔符以及轉義字元(\b,\r,\n,\t,\r)都包含,所以採用替換欄位中的分隔符的方式進行處理,同時hive這邊的行分割符是\n,所以需要使用如下引數進行處理--hive-drop-import-delims
具體的sqoop語句如下:
字段分隔符IFS
ifs internal field seperator 在linux的shell中預設的分隔符,用來把command line分解成word 字段 ifs可以是white space 空白鍵 tab 鍵 enter 回車鍵 中的乙個或幾個。ifs是shell指令碼中的乙個重要概念,在處理文字資料時...
字段分隔符IFS
ifs的預設值為空白字元 換行符 製表符或者空格 當ifs被設定為逗號時,shell將逗號視為乙個定界符,因此變數 item在每次迭代中讀取由 逗號分隔的子串作為變數值。如果沒有把ifs設定成逗號,那麼上面的指令碼會將全部資料作為單個字串列印出來。data name,rollno,location ...
字段分隔符IFS
ifs 的預設值為空白字元 換行符 製表符或者空格 字段分隔符ifs的簡單案例 bin bash 模擬csv資料 data a,b,c 儲存初始的字段分隔符 oldifs ifs 修改字段分隔符 ifs for x in data doecho xdone 恢復至初始的字段分隔符 ifs oldif...