2016-12-05 7 views
0

マーケットバスケット分析をしてルールを抽出した後、タプルで視覚化するためにアイテムの一般的な出現を数えたいと思う。あなたの下には、バスケットの各ID /メンバーのアイテムがあります。PySpark count common occurences

df = sqlContext.createDataFrame([("ID_1", "Butter"), 
("ID_1", "Toast"), 
("ID_1","Ham"), 
("ID_2", "Ham"), 
("ID_2", "Toast"), 
("ID_2","Egg"),], 
["ID","VAL"]) 

df.show() 

+----+------+ 
| ID| VAL| 
+----+------+ 
|ID_1|Butter| 
|ID_1| Toast| 
|ID_1| Ham| 
|ID_2| Ham| 
|ID_2| Toast| 
|ID_2| Egg| 
+----+------+ 

これは私が達成したい結果である:

res = sqlContext.createDataFrame([("Butter", "Butter", 0), 
("Butter", "Toast", 1), 
("Butter", "Ham", 1), 
("Butter", "Egg", 0), 
("Toast", "Toast", 0), 
("Toast", "Ham", 2), 
("Toast", "Egg", 1), 
("Ham", "Ham", 0), 
("Ham", "Egg", 0), 
("Egg", "Egg", 0),], 
["VAL_1","VAL_2", "COUNT"]) 

res.show() 

+------+------+-----+ 
| VAL_1| VAL_2|COUNT| 
+------+------+-----+ 
|Butter|Butter| 0| 
|Butter| Toast| 1| 
|Butter| Ham| 1| 
|Butter| Egg| 0| 
| Toast| Toast| 0| 
| Toast| Ham| 2| 
| Toast| Egg| 1| 
| Ham| Ham| 0| 
| Ham| Egg| 0| 
| Egg| Egg| 0| 
+------+------+-----+ 

あなたの助けが高く評価されます!ありがとう!

答えて

0

あなたはまた、計算列

df.groupBy(['ID','VAL']).count().show() 
の名前を変更する withColumnRenamedを使用する場合がありますでしょう、以下試してみてください