有没有一种方法可以将两个不同的数据帧结果放入一个 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)
我已经使用 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。
在上面的代码中,我导入库,在 Databricks FileStore 中定义目录路径,并检查该目录是否存在。如果该目录不存在,则使用
os.makedirs()
创建该目录。
然后将目录路径与所需的输出文件名 (abc.xlsx) 组合以创建用于保存 Excel 文件的完整文件路径。
接下来,PySpark DataFrame(df1 和 df2)将转换为 Pandas DataFrame。然后,这些 DataFrame 会以不同的工作表名称(“DF1”和“DF2”)写入 Excel 文件(abc.xlsx)。
此过程包括检查并创建目录、准备输出文件路径、将数据转换为 Pandas 格式,最后将数据写入 Excel 文件。