tika解析器没有解析mapreduce中的内容

时间:2014-06-11 10:43:28

标签: hadoop mapreduce apache-tika

我正在写一个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,

解析

后,

文档内容为空 我在这里错过了什么吗?

0 个答案:

没有答案