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

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

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

FileSystem fs = FileSystem.get(new Configuration());            
Path pt = new Path(Configs.BLOBSTORAGEPREFIX+fileAdd);          
InputStream stream = fs.open(pt);           

 AutoDetectParser parser = new AutoDetectParser();
 BodyContentHandler handler = new BodyContentHandler();
 Metadata metadata = new Metadata();   

 parser.parse(stream, handler, metadata);       

  spaceContentBuffer.append(handler.toString());

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

Metadata metadata = new Metadata();         
BodyContentHandler handler =  new BodyContentHandler();
Parser parser = new TXTParser();            
ParseContext con = new ParseContext();          
parser.parse(stream, handler, metadata, con);

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

z3yyvxxp

z3yyvxxp1#

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

相关问题