Comment lire un fichier pdf ou pptx ou docx à partir d'ADLS gen2 en python à l'aide de Synapse ?

WBOY
Libérer: 2024-02-10 10:54:13
avant
567 Les gens l'ont consulté

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

Contenu de la question

Je souhaite utiliser Python dans Synapse Notebook pour lire des fichiers dans différents formats. Ceux-ci incluent .pdf, .pptx, .docx, .msg et .eml. Je veux pouvoir lire des fichiers, puis les analyser et les manipuler avec Python. J'ai pu le faire dans des blocs de données en utilisant différentes bibliothèques Python.

Voici comment j'accomplis cette tâche en briques de données :

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)
Copier après la connexion

Dans synapse, j'obtiens l'erreur : FileNotFoundError : [errno 2] Aucun fichier ou répertoire de ce type.

Ces chemins de fichiers peuvent lire des données csv, excel ou txt à l'aide de spark ou de pandas, donc je ne pense pas qu'il y ait de problème d'autorisation ou de connexion. Le format est : abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path

J'ai également essayé de monter l'emplacement de stockage. Cela facilite la lecture des fichiers texte, mais pas d'autres formats. Monter l'emplacement de stockage dans synapse


Bonne réponse


le montage est la bonne manière, cette réponsel'explique. J'utilise Synapse Studio. La clé est d'utiliser le format de fichier obtenu à partir de la commande path vers le stockage monté. Sinon, je peux essentiellement utiliser ce que j'ai mentionné précédemment dans la question. Uniquement pour le pdf, j'ai dû passer de l'utilisation de la bibliothèque pypdf à pypdf2.

Le format valide est :

path = mssparkutils.fs.getmountpath("/mounted_name") 
# this gave me this format '/synfs/{jobid}/mounted_path/{filename}'
Copier après la connexion

Le format obtenu à partir de mssparkutils fs ne fonctionne pas

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!