ошибки преобразования кадра данных pyspark в двумерный массив для вызова регрессора lightGBM - PullRequest
0 голосов
/ 16 января 2020

Я хотел бы запустить 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, чтобы выполнить преобразование.

Спасибо!

...