2012-02-24 16 views
5

Hadoop'ta bir Harita Azaltma Programında HDFS olan PDF dosyalarını ayrıştırmak zorundayım. Bu yüzden PDF dosyasını HDFS'den Giriş bölü olarak aldım ve ayrıştırılmalı ve Mapper Sınıfına gönderilmelidir. Bu InputFormat'ı uygulamak için bu link'u geçtim. Bu giriş bölümleri nasıl ayrıştırılabilir ve metin biçimine dönüştürülebilir?PDF dosyalarını Hadoop Map'de ayrıştırma

+0

Bu yanıt, aradığınız şeyin bir parçası olabilir: http://stackoverflow.com/a/9298965/698839 –

cevap

6

PDF dosyalarını Hadoop'ta işleme, FileInputFormat Sınıfını genişleterek yapılabilir. Sınıfı WholeFileInputFormat olarak genişletelim. WholeFileInputFormat sınıfında getRecordReader() yöntemini geçersiz kılarsınız. Şimdi her bir pdf, Bireysel Giriş Bölmesi olarak alınacaktır. Ardından, bu bireysel ayırma metni ayıklamak için ayrıştırılabilir. Bu link, FileInputFormat öğesinin nasıl genişletileceğinin açık bir örneğini verir.

1

Bölmelerinize bağlıdır. Ayrışmak için her PDF'ye bir bütün olarak ihtiyaç duyacağınızı düşünüyorum. Bunu yapmak için Java kütüphaneleri var ve Google nerede olduklarını biliyor.

Bunu göz önüne alarak, ayrıştırmaya hazır olduğunuzda dosyanın bir bütün olarak bulunduğu bir yaklaşım kullanmanız gerekir. Bunu haritacıda yapmak istediğinizi varsayarak, tüm dosyaları eşleştiriciye teslim edecek bir okuyucuya ihtiyacınız olacaktır. Bunu yapmak için kendi okuyucunuzu yazabilirsin ya da belki de orada zaten bir tane var. Muhtemelen PDF'lerin dizinini tarayan ve her dosyanın adını mapper'a ve içeriği de değer olarak geçiren bir okuyucu oluşturabilirsiniz.

+0

CombileFileInput biçimi yerine WholeFileInput biçimi uygulanması sorunu çözer. Böylece, AllFileInput formatında her bir PDF dosyası, tek bir giriş bölmesi olarak alınacaktır. Sonra bu giriş bölmeleri tamamen ayrıştırılabilir. – WR10

+0

Ayrıca, tüm dosyayı tek bir bölünmüş olarak ayrıştırmaya çalışırken, okunmakta olan dosyanın boyutu bir dar boğaz olmayacak mı? Büyüklükteki bir TB dosyasını düşünün ve tek bir dosya varsa, tek bir makinede zorunlu olarak ayrıştırılmalıdır. Bu darboğazın üstesinden nasıl geleceğiz? – WR10

+0

Öncelikle, öncelikle ayrıştırmak için PDF'ye tam olarak ihtiyaç duyduğunuzun gerçek olup olmadığını öğrenin. Değilse, bu sorunu giderir. Bozulamayacağınızı varsayarsak, dosya adlarını bölme olarak geçirmeniz ve doğrudan eşleştiricinizdeki HDFS'den okumanız gerektiğini düşünüyorum. –

İlgili konular