2016-12-05 4 views
0

После анализа рыночной корзины, извлечения правил, ... Я также хочу посчитать общее появление элементов - как кортежи - для визуализации их в Tableau. Ниже вы найдете предметы для каждого ID/члена корзины.PySpark подсчет общих событий

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

Попробуй ниже, вы также можете использовать withColumnRenamed переименовать вычисляемый столбец

df.groupBy(['ID','VAL']).count().show() 
Смежные вопросы