【问题标题】:U-SQL + Python PDF file parsing.in Azure Data Lake AnalyticsU-SQL + Python PDF 文件 parsing.in Azure Data Lake Analytics
【发布时间】:2020-05-26 12:10:55
【问题描述】:

我需要使用数据湖分析从 pdf 文件中提取数据并将值存储到表中。谁能帮助我提供一些有关如何实现此场景的示例或程序。

【问题讨论】:

    标签: azure-data-lake azure-databricks azure-data-lake-gen2


    【解决方案1】:

    以下是一些在 Azure Data Lake Analytics 中开始使用 U-SQL 的资源:

    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 中编写类似的东西。

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-16
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多