我有一个存储帐户(adls gen2),其中包含多个 Excel 文件,我可以在 synapse 笔记本中打印它们的列表,如下所示:
mssparkutils.fs.ls("abfss://[email protected]/excelfolder/")
我可以清楚地看到列出的 .xlsx 文件路径,但是当我尝试打开工作表时,它找不到该文件:
from openpyxl import load_workbook
workbook = load_workbook("abfss://[email protected]/excelfolder/excelfile.xlsx")
sheet = workbook.worksheets[0]
sheet
FileNotFoundError:[Errno 2]没有这样的文件或目录:'abfss://[email protected]/excelfolder/excelfile.xlsx'
我尝试使用 https 链接并使用 sas 令牌进行链接,但仍然无法打开文件/sheet1。
如何打开工作表,或者从突触的角度有更好的方法吗?我需要动态(没有 sas 令牌)同时打开多个 excel 文件和联合表。
当我尝试在我的环境中复制该问题时,我收到了相同的错误:
Openyxl 工作簿只需要本地文件路径,这就是上述错误的原因。我已经给出了如下所述的文件路径格式:
df=pd.read_excel('https://<storageAccountName>.blob.core.windows.net/<containerName>/<directory>/samp.xlsx<sasToken>',engine="openpyxl",sheet_name = '<sheetName>')
我能够使用以下代码解决该错误:
import pandas as pd
df=pd.read_excel('https://<storageAccountName>.blob.core.windows.net/<containerName>/<directory>/samp.xlsx<sasToken>',engine="openpyxl",sheet_name = '<sheetName>')
print(df)
否则你可以挂载文件路径并在synapse笔记本中读取它。