首頁  >  文章  >  後端開發  >  如何使用 Synapse 從 ADLS gen2 讀取 python 中的 pdf 或 pptx 或 docx 檔案?

如何使用 Synapse 從 ADLS gen2 讀取 python 中的 pdf 或 pptx 或 docx 檔案?

WBOY
WBOY轉載
2024-02-10 10:54:13566瀏覽

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

問題內容

我希望在 synapse 筆記本中使用 python 讀取不同格式的檔案。其中包括 .pdf、.pptx、.docx、.msg 和 .eml。我希望能夠讀取文件,然後用 python 解析和操作它們。我能夠使用不同的 python 庫在資料塊中做到這一點。

這就是我在 data bricks 中完成此任務的方式:

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)

在 synapse 中我收到錯誤: filenotfounderror:[errno 2]沒有這樣的檔案或目錄。

這些檔案路徑可以使用 spark 或 pandas 讀取 csv、excel 或 txt 數據,因此我認為不存在授權或連接問題。格式為:abfs[s]://file_system_name@account_name.dfs.core.windows.net/file_path

我還嘗試安裝儲存位置。這確實有助於讀取文字文件,但對其他格式沒有幫助。在 synapse 中安裝儲存位置


正確答案


#安裝是正確的方法,此答案進行了解釋。我正在使用 synapse studio 。關鍵是使用從掛載儲存的路徑命令取得的檔案格式。否則我基本上可以使用我之前在問題中提到的內容。只有 pdf 我必須從使用 pypdf 庫更改為 pypdf2。

有效的格式是:

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

從 mssparkutils fs 取得的格式不起作用

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

以上是如何使用 Synapse 從 ADLS gen2 讀取 python 中的 pdf 或 pptx 或 docx 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除