无法读取Azure Databricks上的.xlsx文件

2024-06-26 11:08:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用Python的azuredatabricks笔记本上,在读取excel文件并将其放入spark数据帧时遇到问题。在

我看到有同样的问题,但它们似乎不适合我。在

我尝试了以下解决方案:

https://sauget-ch.fr/2019/06/databricks-charger-des-fichiers-excel-at-scale/

我添加了访问Azure Data Lake上文件的凭据。在

在安装了我需要的所有库之后,我正在执行以下代码:

import xlrd
import azure.datalake.store

filePathBsp = projectFullPath + "BalanceShipmentPlan_20190724_19h31m37s.xlsx";
bspDf = pd.read_excel(AzureDLFileSystem.open(filePathBsp))

在这里,我使用:

^{pr2}$

获取Azure Data Lake中的文件的原因是:

"pd.read_excel" 

不让我把文件拿到湖边去。在

问题是,它给了我一个错误:

TypeError: open() missing 1 required positional argument: 'path'

我确信我可以访问此文件,因为当我尝试:

spark.read.csv(filePathBsp) 

他能找到我的档案。在

有什么想法吗?在


Tags: 文件数据importreaddata笔记本open解决方案
1条回答
网友
1楼 · 发布于 2024-06-26 11:08:22

好吧,经过几天的研究,我终于找到了解决办法。在

在这里!在

你首先要在你的星盘库导入Excel。 这是这个库的页面:https://github.com/crealytics/spark-excel

您还需要“spark\u hadoopOffice”库,否则稍后会出现以下异常:

java.io.IOException: org/apache/commons/collections4/IteratorUtils

enter image description here

下载库时要注意集群中Scala的版本,这很重要。在

然后,您必须通过以下方式装载Azure Data Lake Storage(ADL)的凭据:

^{pr2}$

您只需要执行一次mount命令。在

然后,您可以执行以下代码行:

testDf = spark.read.format("com.crealytics.spark.excel").option("useHeader", True).load(fileTest)
display(testDf)

给你!你有一个来自Azure Data Lake存储中Excel文件的Spark数据帧!在

它对我有用,希望它能帮助其他人。在

相关问题 更多 >