我正在尝试从 Azure Databricks 准备好 Excel 文件( .xlsx
),文件位于 ADLS Gen 2 中。
例子:
srcPathforParquet = "wasbs://hyxxxx@xxxxdatalakedev.blob.core.windows.net//1_Raw//abc.parquet"
srcPathforExcel = "wasbs://hyxxxx@xxxxdatalakedev.blob.core.windows.net//1_Raw//src.xlsx"
从路径中读取镶木地板文件工作正常。
srcparquetDF = spark.read.parquet(srcPathforParquet )
从路径中读取 excel 文件抛出错误: 没有这样的文件或目录
srcexcelDF = pd.read_excel(srcPathforExcel , keep_default_na=False, na_values=[''])
原文由 Sreedhar 发布,翻译遵循 CC BY-SA 4.0 许可协议
方法
pandas.read_excel
不支持使用wasbs
或abfss
方案URL访问文件。详情请参考 这里因此,如果您想使用 pandas 访问文件,我建议您创建一个 sas 令牌并使用
https
带有 sas 令牌的方案来访问该文件或将文件下载为流,然后使用 pandas 读取它。同时,您还可以将存储帐户挂载为文件系统,然后按照@CHEEKATLAPRADEEP-MSFT 所说的那样访问文件。例如
通过 Azure 门户创建 sas 令牌
代码
在数据块中使用 pip 安装包
azure-storage-file-datalake
和xlrd
代码
此外,我们还可以使用 pyspark 读取 excel 文件。但是我们需要在我们的环境中添加 jar
com.crealytics:spark-excel
。有关更多详细信息,请参阅 此处 和 此处例如
添加包
com.crealytics:spark-excel_2.12:0.13.1
通过 Maven。此外, 请注意,如果您使用 scala 2.11,请添加包com.crealytics:spark-excel_2.11:0.13.1
代码