Метод Pyspark mllib + count или collect генерирует исключение ArrayIndexOutOfBounds - PullRequest
1 голос
/ 07 мая 2019

Я учу pyspark и mllib.

После прогнозирования тестовых данных с использованием модели RF, я присваиваю результат в переменную с именем «предсказания», которая является СДР.

Если я вызываю Foretions.count () или Forextion.collect (), произойдет сбой со следующим исключением.

Не могли бы вы поделиться своими мыслями?Уже потратили довольно много времени, но не нашли того, чего не хватает.

    predictions = predict(training_data, test_data)

  File "/mp5/part_d_poc.py", line 36, in predict

    print(predictions.count())

  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1055, in count

  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1046, in sum

  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 917, in fold

  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 816, in collect

  File "/usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__

  File "/usr/local/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value

py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.

: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 15.0 failed 1 times, most recent failure: Lost task 0.0 in stage 15.0 (TID 28, localhost, executor driver): java.lang.ArrayIndexOutOfBoundsException: 7

Я построил тренировочные данные следующим образом.

raw_training_data.map(lambda row: LabeledPoint(row.split(',')[-1], Vectors.dense(row.split(',')[0:-1])))
...