0
我有一个包含ID的列的文件。通常,ID只出现一次,但偶尔会与多个记录关联。我想计算一个给定的ID出现的次数,然后分成两个单独的dfs,这样我就可以在两者上运行不同的操作。一个df应该是ID只出现一次的地方,一个应该是ID多次出现的地方。在PySpark中出现值的次数进行过滤
我是能够成功地算一笔ID出现了通过对ID分组,并加入数返回到原来的DF,像这样的实例数量:
newdf = df.join(df.groupBy('ID').count(),on='ID')
这工作得很好,因为我得到一个输出像这样:
ID Thing count
287099 Foo 3
287099 Bar 3
287099 Foobar 3
321244 Barbar 1
333032 Barfoo 2
333032 Foofoo 2
但是,现在我想,让我有一个DF分裂DF其中count = 1,并且计数> 1.下面及其变化没有工作,但是:
singular = df2.filter(df2.count == 1)
我得到一个'TypeError:条件应该是字符串或列'错误,而不是。当我尝试显示列的类型时,它说count列是一个实例。我如何让PySpark以我需要的方式处理count列?