首页 > 解决方案 > 从小数据集中制作多个数据框的最快方法

问题描述

我需要从一个查询生成的小数据集(145k 行)中创建n 个collect()表,我尝试过的方法是使用and cache(),但collect()最终比cache() (5 秒对 30 秒......)

我正在使用的示例。
搜集():

df = spark.sql(query).collect()
list_a = [Row(col1=i['col1']) for i in df if i['col2'] == 'test']
list_b = [Row(col1=i['col1']) for i in df if i['col2'] == 'derp']

缓存():

df=spark.sql(query)
df.cache()
list_a = df.filter(df['col2'] == 'test').select('col1').collectAsList()
list_b = df.filter(df['col2'] == 'derp').select('col1').collectAsList()

还有另一种比 更快的方法collect()吗?对于小型数据集更好还是因为某些原因不值得
collect()

标签: apache-sparkpysparkdatabricks

解决方案


推荐阅读