使用Sqoop,我已经成功地从一个有BLOB列的表中导入了几行。现在,part-m-00000文件包含所有记录以及BLOB字段作为CSV。
问题:
1)根据文档,关于sqoop特定格式的知识可以帮助读取这些blob记录。那么,sqoop特有的格式是什么意思呢?
2)基本上blob文件是一个文本文件的.gz文件,其中包含一些浮动数据。这些。gz文件以blob的形式存储在Oracle DB中,然后通过Sqoop导入到HDFS中。所以我怎么能从HDFS文件中得到那些浮动数据。任何示例代码都非常有用。
我看到这些选项了。
-
Sqoop直接从Oracle导入二进制数据类型的hive表。这个选项可能会限制hive之外的处理能力,比如MR, pig等,也就是说,你可能需要知道blob是如何以二进制格式存储在hive中的。与您在问题中描述的限制相同
-
Sqoop从oracle导入到avro, sequence或orc文件格式,可以保存二进制文件。你应该能够通过在上面创建一个hive外部表来读取它。您可以编写一个hive UDF来解压缩二进制数据。这个选项更灵活,因为数据可以很容易地与MR处理,特别是avro,序列文件格式。
希望这对你有帮助。你是怎么解决的?