Анализ Больших Данных С Использованием Spark

#python #apache-spark #bigdata

Вопрос:

Как я могу исправить эту ошибку? Я получаю ошибку при выполнении последней ячейки, где я допустил ошибку? есть ли что-нибудь в моей версии программы? или что-то подобное?

введите описание изображения здесь

 def count_examples(Data): count = Data.map(lambda labelPoint: (labelPoint.label,1)).reduceByKey(lambda x,y: x y) return count.collect()  counts = count_examples(Data)  counts3 = count_examples(sc.parallelize(Data.take(3)))  assert type(counts3) == list, 'Incorrect return type' assert type(counts3[0]) == tuple, 'Incorrect return type' assert type(counts3[0][0]) == float, 'Incorrect return type' assert type(counts3[0][1]) == int, 'Incorrect return type'  assert counts3[0][0] == 5.0, 'Incorrect return value' assert counts3[0][1] == 2, 'Incorrect return value'  AssertionError Traceback (most recent call last) lt;ipython-input-24-9c21c32429c5gt; in lt;modulegt;() ----gt; 1 assert counts3[0][0] == 5.0, 'Incorrect return value'  2 assert counts3[0][1] == 2, 'Incorrect return value'  AssertionError: Incorrect return value  

Ответ №1:

Это не ошибка, а ошибка утверждения. В принципе, здесь происходит то, что значение, сохраненное в counts3[0][0] , не равно 5.0

Вы можете легко исправить это в два шага

  1. знайте, каково ожидаемое значение, поэтому просто измените свой код на
     assert counts3[0][0] == 5.0, f"Incorrect return value, actual is {counts3[0][0]}"  

Когда вы запустите этот код, он снова завершится ошибкой, но выведет точное ожидаемое значение

  1. измените значение в утверждении на ожидаемое значение с вышеуказанного шага

Комментарии:

1. вы правы ==2.0, а не 5.0, но, к сожалению, я не могу изменить эту ячейку. есть ли какое-то другое решение?

2. @HawarDizayee, к сожалению, единственным другим вариантом было бы изменить входные данные таким образом, чтобы counts3[0][0] они были равны 5.0 . в противном случае вам придется избавиться от оператора assert