Maison >développement back-end >Tutoriel Python >Comment lire un fichier pdf ou pptx ou docx à partir d'ADLS gen2 en python à l'aide de Synapse ?

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

WBOY
WBOYavant
2024-02-10 10:54:13595parcourir

如何使用 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)

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}'

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}'

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer