tika解析器不解析mapreduce中的内容

oxosxuxt  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(261)

我正在写一个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,
解析后文档内容为空
我有什么遗漏吗??

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题