Я пытаюсь сохранить вывод правила ассоциации, используя FPGrowth, используя pyspark огромного набора данных во фрейме данных pandas.
Это код, который я пытаюсь:
from pyspark.ml.fpm import FPGrowth
from pyspark.sql import Row
from pyspark.context import SparkContext
from pyspark.sql.session import SparkSession
sc = SparkContext.getOrCreate();
spark = SparkSession(sc)
R = Row('ID', 'items')
df=spark.createDataFrame([R(i, x) for i, x in enumerate(transactions2)])
fpGrowth = FPGrowth(itemsCol="items", minSupport=0.6, minConfidence=0.6)
model = fpGrowth.fit(df)
ar=model.associationRules
association_rules=ar.toPandas()
Я получаю сообщение об ошибке:
Py4JJavaError: An error occurred while calling o115.collectToPython.
: org.apache.spark.SparkException: Job aborted due to stage failure:
Task 11 in stage 11.0 failed 1 times, most recent failure: Lost task
11.0 in stage 11.0 (TID 275, localhost, executor driver):
java.lang.OutOfMemoryError: GC overhead limit exceeded
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Спецификация используемой системы:
Виртуальная машина Windows 10 с 24 Vpu и 240 Гбайт
Python 3.6.5, Jupyter Notebook and Pyspark: «2.4.3», версия Java: javac 1.8.0_211
Я не могу решить проблему, так как мне нужно сохранить вывод в файле .csv.
Выходной фрейм данных, который я хочу сохранить в csv:
--------------------+------------+------------------+------------------+
| предшествующее | как следствие | доверие | поднять |
| [B, E, N ... | [A] | 1,0 | 1,0 |
| [B, C, D ... | [A] | 1,0 | 1,0 |
| [E, F, G ... | [B] | 1,0 | 1,0 |
| [A, B, M ... | [C] | 1,0 | 1,0 |