【发布时间】:2017-04-14 16:25:34
【问题描述】:
我想将数据帧拆分为两个数据帧,并将它们写入两个单独的 parquet 文件,像这样
df = attachment_df.flatMap(process_attachment).toDF()
large_df = df.filter(df.is_large_file == True)
small_df = df.filter(df.is_large_file == False)
(large_df.write
.mode("overwrite")
.parquet('large_dummy'))
(small_df.write
.mode("overwrite")
.parquet('small_dummy'))
但是,上面的代码将按顺序编写,看起来 process_attachment 函数会为每个附件调用两次。我真的很想避免重复计算,因为处理附件非常昂贵。
有没有办法避免附件的重复处理和并行写入?我不想使用按 is_large_file 列的分区写入单个镶木地板文件。
谢谢,
【问题讨论】:
-
您找到解决方案了吗?可以更新一下吗?