Если предположить, что данные является DataFrame
, мы сначала преобразовать его в rdd
, а затем определить key
«S, использовать их, чтобы сгруппировать данные и, наконец, map
эти значения в list
и извлечь их. Мы можем сделать это двумя способами, либо использовать groupByKey()
:
(df.rdd
.map(lambda x: (x[1],x[0]))
.groupByKey()
.mapValues(list)
.values())
Или использовать reduceByKey()
, которая собирается быть более эффективным:
(df.rdd
.map(lambda x: (x[1],[x[0]]))
.reduceByKey(lambda x,y: x+y)
.values())
данных:
df = sc.parallelize([("apple", 1),
("caterpillar", 1),
("banana", 2),
("monkey", 2),
("dog", 3),
("bone", 3),
("oath", 3)]).toDF(["Food", "rank"])
Что делает ранг представляют? FPGrowth принимает последовательность «событий» в виде списка. Таким образом, согласно вашему результату, это то, что FPGrowth будет читать после события 1, событие apple happend, а затем событие гусеницы. Вы уверены, что хотите получить этот результат? – eliasah