首页 > 解决方案 > databricks:将 spark 数据框直接写入 excel

问题描述

有什么方法可以直接将 spark 数据帧写入 xls/xlsx 格式????

网络中的大多数示例都显示了熊猫数据框的示例。

但我想使用 spark 数据框来处理我的数据。任何想法 ?

标签: databricks

解决方案


我假设因为您有“databricks”标签,所以您希望在 databricks 文件存储中创建一个 .xlsx 文件,并且您正在 databricks 笔记本中运行代码。我还将假设您的笔记本正在运行 python。

没有直接的方法可以从 spark 数据框中保存 excel 文档。但是,您可以将 spark 数据帧转换为 pandas 数据帧,然后从那里导出。我们需要从安装xlsxwriter包开始。您可以使用databricks utilites命令为您的笔记本环境执行此操作:

dbutils.library.installPyPI('xlsxwriter')
dbutils.library.restartPython()

我在将 excel 文件直接保存到 dbfs 时遇到了一些权限问题。一个快速的解决方法是保存到集群的默认目录,然后 sudo 将文件移动到 dbfs。这是一些示例代码:

# Creating dummy spark dataframe
spark_df = spark.sql('SELECT * FROM default.test_delta LIMIT 100')

# Converting spark dataframe to pandas dataframe
pandas_df = spark_df.toPandas()

# Exporting pandas dataframe to xlsx file
pandas_df.to_excel('excel_test.xlsx', engine='xlsxwriter')

然后在一个新命令中,使用 %sh 指定要在 shell 中运行的命令:

%sh
sudo mv excel_test.xlsx /dbfs/mnt/data/

推荐阅读