如何计算 pyspark 数据帧中某个键的出现次数 (2.1.0)

弗洛里安·卡斯泰兰

语境

假设我有以下数据框:

col1 | col2 | col3
a    | toto | 1
a    | toto | 2
a    | toto | 45
a    | toto | 789
a    | toto | 456
b    | titi | 4
b    | titi | 8

col1作为主键。

我想知道如何确定哪个键在col1数据框中出现的次数少于 5 次。

所以输出应该是:

col1 | col2 | col3
b    | titi | 

到目前为止,我想出了以下解决方案:

anc_ref_window = Window.partitionBy("col1")
df\
    .withColumn("temp_one", lit(1)) \
    .withColumn("count", sum(col("temp_one")).over(anc_ref_window)) \
    .drop("temp_one") \
    .filter(col("count") < 5) \
    .drop("count") \
    .show()

这给出了以下结果:

col1 | col2 | col3
b    | titi | 4
b    | titi | 8

问题

1 - 这是解决问题的正确方法吗?

2 - 我怎样才能得到预期的输出?对于我的 pyspark (2.1.0) 版本,似乎没有像select distinct col1,col2我通过 Impala所做的那样的机制(例如)。

编辑:

col3 中的输出值对我来说无关紧要。

弗洛里安·卡斯泰兰

@koilaro 将我导向distinct. 但是,它不提供在pyspark 2.1.0.

但是,dropDuplicates工作是否:

df\
    .withColumn("temp_one", lit(1)) \
    .withColumn("count", sum(col("temp_one")).over(anc_ref_window)) \
    .drop("temp_one") \
    .filter(col("count") < 5) \
    .drop("count") \
    .dropDuplicates(["col1"])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pyspark - 如何根据数据帧 2 中的列值在数据帧 1 中插入记录

如何计算 Pyspark 中先前出现的次数

将pyspark中的数据帧编码为0和1

计算整个数据帧中某个值的出现次数

foldLeft 在 (0 /: (1 to 6))(_+_) 中是如何计算的?

如何计算value1和value2在数组键中出现的次数?

在数据框 2 中搜索数据框 1 的值并计算出现次数

如何计算一个数据帧的两列中某个元素的出现次数?

计算 Pandas 中 2 个数据帧(由索引链接)中数据的出现次数

如何从范围编号 1 到 n 计算 0 或 1 的总出现次数?

如何计算O(n)时间中在0、1、2,...,n中设置的1位位数?

使用 group_by 计算 R 中 2 个数据帧之间的特定单词出现次数

如何计算变量中0和1的数量?

MATLAB-如何计算向量中的0和1

如何计算pyspark数据帧中每个不同值的计数?

如何使用a [0]-a [0] a [1]-a [0] a [1] a [2]输出数组

如何计算数据帧中组合的相似出现次数?

如何在Pyspark数据框中的轴= 1上连接ArrayType的2列?

在pyspark数据帧中,如何在左联接操作的输出中将空值替换为0?

如何计算> = 3个连续1个值在数据框列中的出现次数

计算pyspark数据帧中的速率

如何基于2列数据帧创建具有1和0的矩阵

如何计算一个值在 1.6 亿乘 2 数据帧中出现的次数 - 内存问题

计算跨多列的单行中0变为1的次数

如何在使用pyspark从其自己的数据帧中选择的火花数据帧中执行计算

如何计算pyspark数据帧中值的条件概率?

Pyspark如何计算每个组中字符串的出现次数并打印多个选定的列?

如何在计算中处理 1 或 2 个 NULL

如何使用 pyspark.rdd 来组合 ("word", (1, 2)) 之类的数据格式?