在未安装“openpyxl”模块的情况下,将 pyspark 中的数据帧导出到 excel 文件

问题描述 投票:0回答:2

我正在尝试将我的 Spark 数据帧写入 Excel 文件中,通过在 pandas 数据帧中更改它们然后使用

来生成所需的报告
panda_df = df.toPandas()
writer = pd.ExcelWriter(filename)
panda_df.to_excel(writer,'Sheet1', startcol = 0, startrow = 0)

这给出了一个错误:

File "/usr/lib64/python2.6/site-packages/pandas/io/excel.py", line 350, in __init__
from openpyxl.workbook import Workbook
ImportError: No module named openpyxl.workbook

我在远程服务器上运行它,因此没有使用 sudo apt-get 的管理员权限,因为它显示“Sudo:apt-get:找不到命令”,并且我也尝试使用 pip 不使用,因为它不是已安装。还有其他方法可以在 Excel 中编写数据框吗?

python excel pandas pyspark apache-spark-sql
2个回答
0
投票

您可以按照以下步骤进行。

您可以从此处的源存储库克隆该库:

git clone https://bitbucket.org/openpyxl/openpyxl

进入 openpyxl 目录,然后运行以下命令为您的用户安装它,无需管理员权限:

python setup.py install --user

然后,您可以将 openpyxl 的路径添加到您的代码中,如下所示:

import sys
sys.path.append('/path/to/openpyxl/folder')

panda_df = df.toPandas()
writer = pd.ExcelWriter(filename)
panda_df.to_excel(writer,'Sheet1', startcol = 0, startrow = 0)

0
投票

或者,您可以使用 HadoopOffice 库的 Spark2 数据源(也支持 Python)。您可以读取/写入加密的、链接到其他工作簿、具有元数据等的 Excel 文件。 此外,它具有低占用空间模式,使您能够快速写入较大的 Excel 文件,而无需大量内存或 CPU: https://github.com/ZuInnoTe/spark-hadoopoffice-ds

数据源基于 HadoopOffice 库,几乎允许任何 Hadoop 应用程序读取/写入 Excel 文件,因为它具有相应的 Hadoop FileInputFormats 和 FileOutputFormats: https://github.com/ZuInnoTe/hadoopoffice

© www.soinside.com 2019 - 2024. All rights reserved.