2015-09-18 229 views
1

我有一個DataFrame,我想計算這個數據框中的兩列的唯一行。例如:DataFrame,計算唯一值,Java

a x 
a x 
a y 
b y 
b y 
b y 

應該是:

a x 2 
a y 1 
b y 3 

我知道在大熊貓數據幀此操作的解決方案,但現在我想這樣做在Java中直接(最好的辦法就是Java 8) 。

回答

0

我自己找到了下一個解決方案。在這裏複製,如果有人有興趣....

DataFrame df2 = df.groupBy("Column_one", "Column_two").count(); 
df2.show(); 
+1

與Java 8的關係在哪裏? – Holger

+0

如果您在Java 8中擁有較短的解決方案,那麼歡迎您。 – Guforu

3

我不知道什麼樣的輸入類型,你有,但假設你有一個List<DataFrame> listDataFrame器具等於/哈希碼如預期,你就可以使用兩個集熱器的組合:

Map<DataFrame, Long> count = list.stream().collect(groupingBy(x -> x, counting())); 

這需要以下靜態進口:

import static java.util.stream.Collectors.counting; 
import static java.util.stream.Collectors.groupingBy; 
+0

我有輸入類型DataFrame和列的類型是字符串。 – Guforu