如何将数据框结果放入Excel的不同工作表中并将其存储在databrciks中自己的DBFS文件夹中

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

有没有一种方法可以将两个不同的数据帧结果放入一个 csv 文件中并将其存储在自己的 databrikcs 文件夹中。

所以基本上我有 DF1(结果集)和 DF2(结果计数),我想将数据帧输出保留在 csv 中的两个不同工作表中,最后将其保存在 DBFS 中我自己的 databricks 文件夹中。

我有示例代码,我用它来将数据帧结果存储在我自己的 databrciks 文件夹中的 csv 中。

output_file = '/dbfs/FileStore/xyz/abc.csv'
print(output_file)
print(df_count.shape)
df_count.to_csv(output_file, index = None, header=True)
python-3.x azure-active-directory databricks export-to-csv azure-databricks
1个回答
0
投票

我已经使用 Pandas 尝试了以下方法:

import os
dbfs_directory = '/FileStore/tables/D01'
if not os.path.exists(dbfs_directory):
    os.makedirs(dbfs_directory)
output_file = dbfs_directory + 'abc.xlsx'
df1_pd = df1.toPandas()
df2_pd = df2.toPandas()
writer = pd.ExcelWriter(output_file)
df1_pd.to_excel(writer, sheet_name='DF1', index=False)
df2_pd.to_excel(writer, sheet_name='DF2', index=False)
writer.save()

# Results:

df1_read = pd.read_excel(output_file, sheet_name='DF1')
df2_read = pd.read_excel(output_file, sheet_name='DF2')
print("Data for Sheet 1 (DF1):")
print(df1_read)
print("\nData for Sheet 2 (DF2):")
print(df2_read)

'''
Data for Sheet 1 (DF1):
   Name  Age      City
0  John   25  New York
1  Kate   30    London
2  Mike   35     Paris

Data for Sheet 2 (DF2):
       City  Count
0  New York    100
1    London    200
2     Paris    300
'''

此外,我已将 Excel 文件写入 ADLS,以检查是否可以在电子表格中看到 DF1 和 DF2。

enter image description here

enter image description here

在上面的代码中,我导入库,在 Databricks FileStore 中定义目录路径,并检查该目录是否存在。如果该目录不存在,则使用

os.makedirs()
创建该目录。

然后将目录路径与所需的输出文件名 (abc.xlsx) 组合以创建用于保存 Excel 文件的完整文件路径。

接下来,PySpark DataFrame(df1 和 df2)将转换为 Pandas DataFrame。然后,这些 DataFrame 会以不同的工作表名称(“DF1”和“DF2”)写入 Excel 文件(abc.xlsx)。

此过程包括检查并创建目录、准备输出文件路径、将数据转换为 Pandas 格式,最后将数据写入 Excel 文件。

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