【发布时间】:2021-02-12 19:34:58
【问题描述】:
所以我有一个带有“类别”列的数据框,它有超过 12k 个不同的值,出于抽样目的,我想获得一个小样本,其中该类别列只有 1000 个不同的值。
在我做之前:
small_distinct = df.select("category").distinct().limit(1000).rdd.flatMap(lambda x: x).collect()
df = df.where(col("category").isin(small_distinct))
我知道这是非常低效的,因为我正在对类别列进行区分,然后将其转换为普通的 python 列表,这样我就可以使用isin() 过滤器。
有没有“火花”的方式来做到这一点?我想也许带有rolloverwindows的东西可以完成这项工作?但我无法解决它
谢谢!
【问题讨论】:
标签: python apache-spark pyspark