我的文件是这样的:
1^%~binod^*~1^%~ritesh^*~1^%~shisir^*~1^%~budhdha^*~1^%~romika^*~1^%~rubeena^*~
其中--input-fields-terminated-by'^%〜' - 输入行 - 终止 - 由'^ *〜'。
我尝试通过命令导出:
sqoop export --connect jdbc:mysql://localhost/sqoop --username root -P --table makalu --export-dir sqoop/makalu --input-fields-terminated-by '^%~' --input-lines-terminated-by '^*~'
但它写了一行:
id|name 1|%~binod在MySQL中
。
答案 0 :(得分:4)
参数 - 输入字段已终止和 - 输入行终止接受单个字符
在终端中执行导出命令时,您可以看到以下警告
02/03 18:55:21 WARN sqoop.SqoopOptions: Character argument ^%~ has multiple characters; only the first will be used.
15/02/03 18:55:21 WARN sqoop.SqoopOptions: Character argument ^*~ has multiple characters; only the first will be used.
我观察到的一件事是,如果除了\ n或新行之外的行被终止,那么它在导出时只会将一条记录插入数据库。我尝试了几种与字段和行终止的组合,但仅在行终止时才使用\ n数据导出到RDBMS表中
甚至尝试使用 - 输入行终止和 - 行终止参数,但没有运气。
我在
上测试了这个Cloudera CDH-5.0.0-1
Sqoop version: 1.4.4-cdh5.0.0
我能找到的只有this。
答案 1 :(得分:0)
参数--input-fields-terminated-by'单引号中的任何分隔符'作品。在这种情况下也不要使用--direct,因为它会覆盖分隔符。 显然你需要一个在mysql中创建的表,其默认分隔为','