我正在尝试通过HDFS / Sqoop将表从SQL Server导入和导出到DB2。
我正在使用
--fields-terminated-by '\001'
--lines-terminated-by '\002'
--hive-replace-delims '<hivedelims>'
and/or --hive-drop-import-delims
我几乎可以完成所有工作,但是.....
SQL Server中的某些列的类型为nvarchar(max)
,并且包含诸如
"...[CR][LF] ..."
或包含管道字符的XML文本:“ |”
或包含\ n或[LF]或[CR] ....等的简单文本。
显然,该列可以容纳任何类型的文本。...
我想将这类单元格作为一个块导入HDFS,并将它们同样作为一个块导出到DB2 ...
我正在通过使用导入所有表而不是一个一个地进行导入,否则我想到了对那些特定的表/列使用--map-column-java ..
但是,由于上述原因,我尝试使用的任何组合都使我留下了一些无法导出的表,因为它们使用不同的列数进行解释。
我希望这是有道理的,否则我更愿意详细说明一些实际数据(匿名,因为它们包含敏感数据)
提前感谢您的任何建议。
答案 0 :(得分:0)
好的,我最终通过以下方法解决了该问题:
在sqoop导入所有表部分中:
--hive-drop-import-delims \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
在sqoop导出部分:
--input-fields-terminated-by '\001' \
--input-lines-terminated-by '\n' \
那已经做好了一切。
现在我内存不足,但这完全是另一回事了;-)
希望对其他人有帮助。