hadoop - Tika文本提取在HDFS上不起作用

标签 hadoop azure-storage-blobs apache-tika

我正在尝试使用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());

最后一行将提取的内容附加到StringBuilder,但始终为空。

ps。我的hadoop群集是Azure HDInsight,因此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

最佳答案

如果用户在上传Blob时未指定Content-Type,则默认情况下会将其设置为“application / octet-stream”。

关于hadoop - Tika文本提取在HDFS上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009494/

相关文章:

hadoop - 无法打开别名-Pig的迭代器

hadoop - 具有15个表联接的Hive查询预计将在3个数据节点上生成10亿条记录,每个16GB RAM这是正确的方法吗?

hadoop - 通过 flume 将事件数据写入 HDFS 时出错

asp.net - 如何从网页将大文件上传到 Azure blob

azure - 如何在Go中正确配置重试以上传到Azure Blob存储

java - 使用 Tika 解析 PDF 区域

java - 蒂卡异常 : Failed to close temporary resource - how to fix?

sql - 在Hive中转置许多列

azure - 写入数据帧后,Spark避免hadoop fs.rename失败

unit-testing - Grails - Apache Tika 插件测试应用失败