Я использую алгоритм FPGrowth с использованием pyspark в python3.6 с использованием ноутбука jupyter. Когда я пытаюсь сохранить правила ассоциации, вывод сгенерированных правил огромен. Поэтому я хочу ограничить количество последовательных. Вот код, который я пробовал. Я также изменил параметры контекста искры.
Максимальная длина шаблона fpGrowth (Apache) PySpark
from pyspark.sql.functions import col, size
from pyspark.ml.fpm import FPGrowth
from pyspark.sql import Row
from pyspark.context import SparkContext
from pyspark.sql.session import SparkSession
from pyspark import SparkConf
conf = SparkConf().setAppName("App")
conf = (conf.setMaster('local[*]')
.set('spark.executor.memory', '100G')
.set('spark.driver.memory', '400G')
.set('spark.driver.maxResultSize', '200G'))
sc = SparkContext.getOrCreate(conf=conf)
spark = SparkSession(sc)
R = Row('ID', 'items')
df=spark.createDataFrame([R(i, x) for i, x in enumerate(lol)])
fpGrowth = FPGrowth(itemsCol="items", minSupport=0.7, minConfidence=0.9)
model = fpGrowth.fit(df)
ar=model.associationRules.where(size(col('antecedent')) == 2).where(size(col('cosequent')) == 1)
ar.cache()
ar.toPandas().to_csv('output.csv')
It gives an error
TypeError Traceback (most recent call last)
<ipython-input-1-f90c7a9f11ae> in <module>
---> 73 ar=model.associationRules.where(size(col('antecedent')) ==
2).where(size(col('consequent')) == 1)
TypeError: 'str' object is not callable
Может кто-нибудь помочь мне решить проблему.
Здесь lol - список списка транзакций: [['a', 'b'], ['c', 'a', 'e'] ....]
Python: 3.6.5
Pyspark
Windows 10