Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lese ich eine PDF-, PPTX- oder DOCX-Datei von ADLS gen2 in Python mit Synapse?

Wie lese ich eine PDF-, PPTX- oder DOCX-Datei von ADLS gen2 in Python mit Synapse?

WBOY
WBOYnach vorne
2024-02-10 10:54:13566Durchsuche

如何使用 Synapse 从 ADLS gen2 读取 python 中的 pdf 或 pptx 或 docx 文件?

Frageninhalt

Ich möchte Python im Synapse-Notizbuch verwenden, um Dateien in verschiedenen Formaten zu lesen. Dazu gehören .pdf, .pptx, .docx, .msg und .eml. Ich möchte in der Lage sein, Dateien zu lesen und sie dann mit Python zu analysieren und zu bearbeiten. Ich konnte dies in Datenblöcken mithilfe verschiedener Python-Bibliotheken tun.

So erledige ich diese Aufgabe in Datenbausteinen:

from pptx import Presentation
prs = Presentation(file_name)

# for pdf
from pypdf import PdfReader
reader = PdfReader(open(filename, 'rb'))

# word docs
import docx
doc = docx.Document(file_name)

# .eml files
import email
msg = email.message_from_file(open(file_name))type here

# .msg files
import extract_msg
msg = extract_msg.Message(file_name)

In Synapse erhalte ich die Fehlermeldung: FileNotFoundError: [Fehler Nr. 2] Keine solche Datei oder kein solches Verzeichnis.

Diese Dateipfade können CSV-, Excel- oder TXT-Daten mit Spark oder Pandas lesen, daher glaube ich nicht, dass ein Autorisierungs- oder Verbindungsproblem vorliegt. Das Format ist: abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path

Ich habe auch versucht, den Speicherort zu mounten. Dies hilft zwar beim Lesen von Textdateien, jedoch nicht beim Lesen anderer Formate. Mounten des Speicherorts in Synapse


Richtige Antwort


Mounten ist der richtige Weg, diese Antworterklärt es. Ich verwende Synapse Studio. Der Schlüssel besteht darin, das Dateiformat zu verwenden, das vom Pfadbefehl zum bereitgestellten Speicher erhalten wurde. Ansonsten kann ich grundsätzlich das verwenden, was ich zuvor in der Frage erwähnt habe. Nur für PDF musste ich von der Verwendung der pypdf-Bibliothek auf pypdf2 umsteigen.

Das gültige Format ist:

path = mssparkutils.fs.getmountpath("/mounted_name") 
# this gave me this format '/synfs/{jobid}/mounted_path/{filename}'

Das von mssparkutils fs erhaltene Format funktioniert nicht

mssparkutils.fs.ls("synfs:/{jobId}/mounted_path/") 
# this gave a different format which did not work   'synfs:/{jobId}/mounted_path/{filename}'

Das obige ist der detaillierte Inhalt vonWie lese ich eine PDF-, PPTX- oder DOCX-Datei von ADLS gen2 in Python mit Synapse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen