我正在尝试将我的 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 中编写数据框吗?
您可以按照以下步骤进行。
您可以从此处的源存储库克隆该库:
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)
或者,您可以使用 HadoopOffice 库的 Spark2 数据源(也支持 Python)。您可以读取/写入加密的、链接到其他工作簿、具有元数据等的 Excel 文件。 此外,它具有低占用空间模式,使您能够快速写入较大的 Excel 文件,而无需大量内存或 CPU: https://github.com/ZuInnoTe/spark-hadoopoffice-ds
数据源基于 HadoopOffice 库,几乎允许任何 Hadoop 应用程序读取/写入 Excel 文件,因为它具有相应的 Hadoop FileInputFormats 和 FileOutputFormats: https://github.com/ZuInnoTe/hadoopoffice