我正在写一个mapreduce作业,它以一个zip文件作为输入, zip文件包含不同类型的文档,例如docx odt pdf txt, 我正在使用tika解析器来解析文档。
这是我的mapper方法的代码片段
public void map(Text key, BytesWritable value, Context context)throws IOException, InterruptedException {
------------------------------
------------------------------
logger.info("Length:\t" + value.getLength());
byte[] bytesbefore = value.getBytes();
logger.info("CONTENT BEFORE" + new String(bytesbefore));
InputStream in = new ByteArrayInputStream(bytesbefore);
Metadata metadata = new Metadata();
String mimeType = new Tika().detect(in);
metadata.set(Metadata.CONTENT_TYPE, mimeType);
Parser parser = new AutoDetectParser();
ContentHandler handler = new BodyContentHandler(
value.getLength());
try {
parser.parse(in, handler, metadata, new ParseContext());
} catch (SAXException e1) {
logger.info(e1.getMessage());
e1.printStackTrace();
} catch (TikaException e1) {
logger.info(e1.getMessage());
e1.printStackTrace();
}
in.close();
logger.info("Content AFTER" + handler.toString());
------------------------------
------------------------------
}
输出写入hbase,
解析后,文档内容为空 我在这里错过了什么吗?