U-SQL+Python PDF文件解析.在Azure数据湖分析中的应用

问题描述 投票:0回答:1

我需要从pdf文件中提取数据,并将值存储到Table,使用Data lake Analytics。谁能帮我提供一些例子或过程,如何实现这个方案。

azure-data-lake azure-databricks azure-data-lake-gen2
1个回答
1
投票

这里有一些资源,开始与U-SQL在Azure数据湖分析。

https:/docs.microsoft.comen-usu-sql

https:/www.purplefrogsystems.compaulcategoryu-sql

https:/www.mssqltips.comsqlservertip5890azure-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.xyxsimple-pdf-text-extractor-adla。

希望对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.