Python 使用基于列的引用的Pyspark数据帧过滤器

Python 使用基于列的引用的Pyspark数据帧过滤器,python,apache-spark,dataframe,pyspark,Python,Apache Spark,Dataframe,Pyspark,我有pyspark dataframe,我想用A列和B列过滤dataframe。现在我只想得到B的值,其中A的出现率大于某个数字N 列A类似于和id,可以有重复的值。现在我正在做分组,过滤和使用值列表,这是没有效率的,所以我正在寻找有效的解决方案 范例 N=5 输入 预期产量 您可以看到,由于阈值为5,所以只选择了A列的ID1和ID3,其余的都被排除在外。请尝试以下操作: df = ... # The dataframe N = 5 # The value to test df_b = df.f

我有pyspark dataframe,我想用A列和B列过滤dataframe。现在我只想得到B的值,其中A的出现率大于某个数字N

列A类似于和id,可以有重复的值。现在我正在做分组,过滤和使用值列表,这是没有效率的,所以我正在寻找有效的解决方案

范例

N=5

输入

预期产量

您可以看到,由于阈值为5,所以只选择了A列的ID1和ID3,其余的都被排除在外。

请尝试以下操作:

df = ... # The dataframe
N = 5 # The value to test
df_b = df.filter(df['A'] >= N).select('B')

这将首先过滤数据帧,该数据帧仅包含A大于等于N的行及其相应的“B”值。应用过滤器后,仅选择B列以获得最终结果。

您可以分享您的尝试吗?您可能想看看这个问题,我认为这不是我想要的。我想你错过了发生的要点。请仔细阅读问题。如果这是如此简单,我就不会张贴问题:)然后请给出一个输入和预期输出的例子。对“重复价值”的正确理解是什么?它是像列表一样的嵌套结构吗?串联值?重复表示重复值。因此,您实际需要的是键(A)值及其对应的B值,如ID1:[B1、B6、B7…]?是的,您可以通过查看输入和输出找到更多信息