我想在Azure Data Lake Gen 2上使用Python中的Azure Databricks将Dataframe(pyspark.pandas.Dataframe)保存为Excel文件。我已经切换到pyspark.pandas.Dataframe,因为它是自Spark3.2以来推荐的一个。
有一个名为to_excel的方法(here的doc),它允许将文件保存到ADL中的容器中,但我遇到了文件系统访问协议的问题。在同一个类中,我使用abfss使用方法to_csv和to_parquet,我想在Excel中使用同样的方法。
所以当我尝试这样保存它时,使用:
import pyspark.pandas as ps
# Omit the df initialization
file_name = "abfss://CONTAINER@SERVICEACCOUNT.dfs.core.windows.net/FILE.xlsx"
sheet = "test"
df.to_excel(file_name, test)
字符串
我从fsspec得到了错误:
ValueError: Protocol not known: abfss
型
有人能帮帮我吗
提前感谢!
3条答案
按热度按时间ddhy6vgd1#
panda数据框不支援此通信协定。在数据块上,您似乎只能通过Spark数据框访问和写入abfss上的文件。因此,解决方案是在本地写入文件,然后手动移动到abfss。见此答案here。
ocebsuys2#
你不能直接保存它,但你可以有它作为它的临时位置,并移动到你的目录。我的代码是:
字符串
使用XlsxWriter作为引擎创建Pandas Excel编写器。
型
write.save之后
运行下面的代码,这是什么,但移动临时位置的文件到您的指定位置。
下面的代码做移动文件的工作。
型
axr492tv3#
试着用“abfs://”代替“abfss://”-对我来说很有效。请参阅here了解更多信息。