tika文本提取在hdfs上不起作用

yftpprvb  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(538)

我正在尝试使用tika从hdfs上存储的一堆简单的txt文件中提取文本。我的reducer中有以下代码,但令人惊讶的是tika没有返回任何东西。它在我的本地机器上运行得很好,但是一旦我将所有内容移动到hadoop集群,结果就是空的。

  1. FileSystem fs = FileSystem.get(new Configuration());
  2. Path pt = new Path(Configs.BLOBSTORAGEPREFIX+fileAdd);
  3. InputStream stream = fs.open(pt);
  4. AutoDetectParser parser = new AutoDetectParser();
  5. BodyContentHandler handler = new BodyContentHandler();
  6. Metadata metadata = new Metadata();
  7. parser.parse(stream, handler, metadata);
  8. spaceContentBuffer.append(handler.toString());

最后一行将extreaxted内容附加到stringbuilder,但它始终为空。
p、 我的hadoop集群是azurehdinsight,所以hdfs是blob存储。
我还尝试了以下代码

  1. Metadata metadata = new Metadata();
  2. BodyContentHandler handler = new BodyContentHandler();
  3. Parser parser = new TXTParser();
  4. ParseContext con = new ParseContext();
  5. parser.parse(stream, handler, metadata, con);

我收到了以下错误信息: Failed to detect the character encoding of a document

z3yyvxxp

z3yyvxxp1#

如果用户上传blob时未指定内容类型,则默认设置为“application/octet stream”。

相关问题