java - 如何获取和查看从HDFS到本地系统的Oracle BLOB(图像)数据?

标签 java oracle hadoop sqoop

我已经将图像文件作为BLOB存储在oracle数据库中,并使用以下Sqoop命令将文件传输到HDFS-

sqoop import --connect jdbc:oracle:thin:@hostname --username -password --m 5 --table table_name  --target-dir '' --split-by id;

现在,我想在本地系统中查看图像文件。但是将文件从HDFS传输到本地系统后,我只能查看一些十六进制代码,而不能查看图像。

我尝试使用Java代码将十六进制代码转换为Base64字符串。但是没有成功。

文件的样本输入:
47 49 46 38 39 61 00 05 87 02 f7 00 00 00 00 00 00 00 33 00 00 66 00 00 99 00 00 cc 00 00 ff 00 2b 00 00 2b 33 00 2b 66 00 2b 99 00 2b cc 00 2b ff 00 55 00 00 55 33 00 55 66 00 55 99 00 55 cc ........

是否有任何Sqoop命令可用来将oracle的BLOB直接作为图像(.jpg / .jpeg)存储到HDFS?还是有其他替代解决方案?

最佳答案

部分答案可以在这里找到

Re-parsing Blob data stored in HDFS imported from Oracle by Sqoop

本质上解析为avro之类的二进制格式。

然后使用类似的方法将字段流式传输到本地系统

How to view an image from blob column in Oracle with JasperReports?

关于java - 如何获取和查看从HDFS到本地系统的Oracle BLOB(图像)数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37682198/

相关文章:

hadoop - 如何在 Reducer 的 close 方法中发出

apache - 当YARN运行时,提交的hadoop作业陷入“已接受”状态

java - 如何从文本文件中删除第一个字符串和逗号

asp.net - 从oracle数据库中获取德语字符

java - 如何编译使用rJava的R包

oracle - Oracle中的ADMIN选项和GRANT选项有什么区别

database - Oracle 11g JDBC 预取键

hadoop - "Flattening"Pig中的一个数据包

Java 堆栈与 ArrayList

java - 在不破坏代码的情况下删除未使用的库