Сжатие СДР с одинаковым количеством элементов, но с ошибками, которые «могут заархивировать СДР с одинаковым количеством элементов в каждом разделе» - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь заархивировать два диска с одинаковым количеством элементов. Но при вызове zip я получаю сообщение об ошибке, что rdd не содержат одинаковое количество элементов. Конкретная ошибка: «Может заархивировать RDD только с одинаковым количеством элементов в каждом разделе».

    data = data.sortBy(lambda x: x[0]).zip(tod).map(lambda x: (x[0][0], x[0][1], x[0][4], x[0][5], x[0][6], x[1][1], x[1][2], x[1][3], x[1][4], x[1][5], x[1][6],  x[0][7]))

    bool_converted = data.map(lambda x: convertStringToFloat(x[0], x[4])).sortBy(lambda x: x[0])

Затем я звоню

    data = data.zip(bool_converted)

, что выдает ошибку

ERROR Executor: Exception in task 1.0 in stage 22.0 (TID 86)
org.apache.spark.SparkException: Can only zip RDDs with same number of elements in each partition

Но у меня такое же количество элементов в разделах:

    print("data", data.count())
    print("bool_converted", bool_converted.count())

Что дает:

('data', 1458644)
('bool_converted', 1458644)

Я даже проверил количество разделов. Оба - 8.

Может кто-нибудь объяснить, что происходит и как это предотвратить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...