使用apache sqoop import

时间:2016-12-27 13:43:35

标签: hive sqoop

我使用apache sqoop将数据从teradata(RDBMS)导入到hive。用于导入的常用分隔符(如",", "|", "~")存在于表中。有没有办法在apache sqoop中使用多个字符作为分隔符。

为避免这种情况,我在sqoop import命令中使用了--escaped-by "\t"--fields-terminated-by ","参数。那么有没有办法来实现这一目标。我在sqoop import中使用的"\t"

1 个答案:

答案 0 :(得分:3)

每当我遇到包含大数据字段的挑战表时,我都会使用'\ b'分隔符,这些数据字段包含可能包含TABS和CR / LF字符的文本。 '\ b'是BACKSPACE,在大多数数据库中很难插入到字符中。

以下是我使用的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'"