Я хотел бы запустить LGBM-регрессор для некоторых данных, которые являются фреймом данных pyspark.
Мой фрейм данных pyspark (50 миллионов строк, 600 столбцов):
id color shape
cvf 2 9
drt 1 8
...
Я разделил его как поезд, валидация, тестовые наборы.
x_train, y_train, x_val, y_val, x_test, y_test = split_function(my_df)
Я вызвал fit () из lightGBM
fit(x_train, y_train)
Я следил за API do c at:
https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMRegressor.html#lightgbm .LGBMRegressor.fit
Я получил ошибку:
ValueError: Expected 2D array, got scalar array instead
Мне нужно преобразовать фрейм данных pyspark в 2-й массив. Я пробовал много способов после поиска решений здесь, но ни одно из них не работает.
Я также пытался преобразовать фрейм данных в pandas фрейм данных, он не работает.
Я также пытался преобразовать его в numpy matrix и ndarray, но он тоже не работает.
На основе Как преобразовать столбец данных pyspark в numpy массив
Я также пытался
xx_train = x_train.toPandas().values()
yy_train = y_train.toPandas().values()
Я получил ошибку:
spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 245 tasks (4.0 GB) is bigger than spark.driver.maxResultSize (4.0 GB)
Кажется, что кадр данных слишком велик для pandas, чтобы выполнить преобразование.
Спасибо!