Я принимаю это course.Функция уменьшения искры: понять, как это работает
В нем говорится, что операция уменьшения на RDD выполняется по одной машине за раз. Это означает, что если ваши данные разделены на 2 компьютера, то нижняя функция будет работать с данными на первом компьютере, найдет результат для этих данных, а затем он займет одно значение со второго компьютера, запустит функцию и продолжит работу таким образом, пока он не закончит все значения с машины 2. Правильно ли это?
Я думал, что функция начнет работать на обеих машинах в то же время, а затем, когда он имеет результаты от 2-х машин, он будет снова запустить функцию в последний раз
rdd1=rdd.reduce(lambda x,y: x+y)
обновление 1-- ------------------------------------------
будет ниже шагов дать более быстрый ответ по сравнению с функцией уменьшения?
Rdd=[3,5,4,7,4]
seqOp = (lambda x, y: x+y)
combOp = (lambda x, y: x+y)
collData.aggregate(0, seqOp, combOp)
Update 2 -----------------------------------
Если оба набор кодов ниже выполняется за такое же количество времени? Я проверил, и кажется, что и то и другое.
import datetime
data=range(1,1000000000)
distData = sc.parallelize(data,4)
print(datetime.datetime.now())
a=distData.reduce(lambda x,y:x+y)
print(a)
print(datetime.datetime.now())
seqOp = (lambda x, y: x+y)
combOp = (lambda x, y: x+y)
print(datetime.datetime.now())
b=distData.aggregate(0, seqOp, combOp)
print(b)
print(datetime.datetime.now())
Я прочитал ваш ответ. Мне сложно понять ваши исходные данные, а также выяснить, правильно ли указано в курсе или нет. Похоже, что утверждение неверно на основе того, что «несколько разделов могут обрабатываться одновременно одним рабочим (несколькими потоками исполнителей) или разными работниками». Пожалуйста, дайте прямой ответ? Пожалуйста, обратите внимание на то, что вы говорите, используя пример - например, RDD [1,2,3,4,5,6] и [1,2,3] находятся на одной машине и остальные элементы на другом компьютере. Как искра и скала обрабатывают их отдельно? Спасибо за работу ура – user2543622
Я не смотрел курс, поэтому я не могу на это ссылаться, но если они действительно скажут вам, что это делается машиной в то время, когда вы перешли в 200 долларов. 'reduce', исключая часть драйвера, использует тот же механизм, что и стандартные преобразования Spark, следовательно, демонстрирует тот же параллелизм. – zero323
Пожалуйста, обратите внимание на то, что вы говорите, используя пример - например, RDD [1,2,3,4,5,6] и [1,2,3] находятся на одной машине и остальные элементы на другом компьютере. . Как искра и скала справляются с ними по-другому? Также можно было бы ответить на мой обновленный вопрос? – user2543622