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列?