我正在尝试使用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
1条答案
按热度按时间z3yyvxxp1#
如果用户上传blob时未指定内容类型,则默认设置为“application/octet stream”。