2016-12-27 8 views
1

私はteradata(RDBMS)からapache sqoopを使ってハイブにデータをインポートしています。 ",", "|", "~"のようなインポートに使用される通常のデリミタがテーブルにあります。 apache sqoopで区切り文字として複数の文字を使用する方法はありますか?apache sqoopを使用した複数の文字区切り文字

これを避けるために、私はsqoop importコマンドで--escaped-by "\t"--fields-terminated-by ","パラメータを使用しました。そこで、私はsqoopのインポートで使用した"\t"の 'エスケープ解除'する方法があります。

+1

テラデータにハイブからデータをTeradataのからのインポートやエクスポート中にあなたが問題を抱えている... –

+0

は--escaped-で\\ --enclosed -by '\ "' –

+0

あなたが望む特定のフォーマットはありますか?これはエスケープ文字のためです。 –

答えて

1

私はTABSとCR/LF文字を含む可能性のあるテキストを含む大きなデータフィールドを含む挑戦的なテーブルを得るたびに '\ b'デリミタを使用します。 '\ b'はバックスペースで、ほとんどのデータベースでは文字に挿入するのが非常に難しいです。ここで

は、私が使用sqoopコマンドの例を示します。

  sqoop import 
       --connect "jdbc:sqlserver://myserver;DatabaseName=MyDB;user=MyUser;password=MyPassword;port=1433" 
       --warehouse-dir=/user/MyUser/Import/MyDB 
       --fields-terminated-by '\b' --num-mappers 8 
       --table training_deficiency 
       --hive-table stage.training_deficiency 
       --hive-import --hive-overwrite 
       --hive-delims-replacement '<newline>' 
       --split-by Training_Deficiency_ID 
       --outdir /home/MyUser/sqoop/java 
       --where "batch_update_dt > '2016-12-09 23:06:44.69'" 
関連する問題