U- SQL + Python PDF-файл parsing.in Azure Data Lake Analytics - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно извлечь данные из файлов PDF и сохранить значения в таблице, используя Data Lake Analytics. Может ли кто-нибудь помочь мне с некоторыми примерами или процедурами достижения этого сценария.

1 Ответ

1 голос
/ 27 мая 2020

Вот некоторые ресурсы для начала работы с U- SQL в Azure Data Lake Analytics:

https://docs.microsoft.com/en-us/u-sql/

https://www.purplefrogsystems.com/paul/category/u-sql/

https://www.mssqltips.com/sqlservertip/5890/azure-data-lake-analytics-using-usql-queries/

Что касается сценария, о котором вы говорили, вам нужно будет написать собственный экстрактор для чтения PDF. Вот пример C# для того же:

using System.Collections.Generic;
 using iTextSharp.text.pdf;
 using iTextSharp.text.pdf.parser;
 using Microsoft.Analytics.Interfaces;

 namespace PDFExtractor
 {
     [SqlUserDefinedExtractor(AtomicFileProcessing = true)]
     public class PDFExtractor : IExtractor
     {
         public override IEnumerable<IRow> Extract(IUnstructuredReader input, IUpdatableRow output)
         {
             var reader = new PdfReader(input.BaseStream);
             for (var page = 1; page <= reader.NumberOfPages; page++)
             {
                 output.Set(0, page);
                 output.Set(1, ExtractText(reader, page));
                 yield return output.AsReadOnly();
             }
         }

         public string ExtractText(PdfReader pdfReader, int pageNum)
         {
             var text = PdfTextExtractor.GetTextFromPage(pdfReader, pageNum, new LocationTextExtractionStrategy());
             // Encode new lines to prevent from line breaking in text editors,
             // I want nice line after line files
             return text.Replace("\r", "\\r").Replace("\n", "\\n");
         }
     }
 }

Вы можете написать что-то подобное в Python.

Ref - https://devblog.xyz/simple-pdf-text-extractor-adla/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...