Как применить FP-Growth к набору данных после groupBy?


person Veysel Ko    schedule 12.05.2017    source источник
comment
Учитывая ваш набор данных, кажется, что item_group уникален. Это правильно? В данном конкретном случае groupBy + collect_list будет простым преобразованием для создания столбца массива, который ожидает FPGrowth.   -  person Jacek Laskowski    schedule 12.05.2017
comment
item_group представляет корзину, в приведенной выше таблице по совпадению каждый item_group появляется только один раз.   -  person Veysel Ko    schedule 12.05.2017
comment
Можете ли вы вставить более подробный набор данных для дальнейшего использования? Вставьте набор данных (не скриншот).   -  person Jacek Laskowski    schedule 12.05.2017


Ответы (1)


Я решил проблему сейчас, используя другой подход, который я нашел в обсуждении здесь.

data=hiveCtx.sql("""select  * from bosch.input_view""")

datardd=data.rdd.map(lambda x (x[0],x[1])).groupByKey().mapValues(list).values()

model = FPGrowth.train(datardd, minSupport=0.1, numPartitions=10)
person Veysel Ko    schedule 12.05.2017
comment
Почему вы используете RDD (data.rdd)? Какую версию Spark вы используете? Приведенный выше код может быть очень неэффективным (из-за отказа от оптимизации набора данных и groupByKey). - person Jacek Laskowski; 12.05.2017
comment
@JacekLaskowski не может использовать карту в DataFrame. Я использую Спарк 2.1. Как упоминалось ранее, я очень новичок в программировании и особенно в искрах. И так как FP-Growth находится в MLlib, а не в ML, он работает с RDD и не может работать с DataFrame? Извините, если я говорю неправильные вещи, но это то, что я думал. - person Veysel Ko; 12.05.2017
comment
Верный. FPGrowth вроде недоступен для DataFrames, но можно было хотя бы подготовить данные с помощью Dataset API и только в самом конце (перед обучением модели) оставить для RDD API. - person Jacek Laskowski; 12.05.2017