pyspark试图检索具有相同id的行

时间:2017-08-02 12:02:14

标签: python r hadoop pyspark

我正在使用spark 2.1.0。以下是我的数据框。问题陈述来自b列,我需要检索b中具有相同值且b中具有不同值的行。提到了结果数据框

a   b

1   2

1   3

1   4

2   6

3   7

结果数据框:

a b

1 2

1 3

1 4

我使用了以下代码,但它无效

sqlCtx.sql("select * from df1 group by a,b having count(a)>=2")

请帮我解决问题。

1 个答案:

答案 0 :(得分:1)

希望这有帮助!

import pyspark.sql.functions as func
df = sc.parallelize([(1,2), (1,3), (1,4), (2,6), (3,7)]).toDF(["a", "b"])
df.show()
df1 = df.groupBy('a').agg(func.collect_list('b').alias("b_list"),func.count('b').alias("count")).filter(func.col('count') > 1)
df2 = df1.rdd.flatMap(lambda row: [(row.a, b) for b in row.b_list]).toDF(["a", "b"])
df2.show()

编辑说明:更正错字)

如果它解决了您的问题,请不要告诉我们。)