sqoop 分隔符與字段內容衝突解決方案

2021-09-26 04:24:28 字數 296 閱讀 2939

一. 解決方案

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...