Я пытаюсь обернуть голову обо всем понятии искры. Я думаю, что у меня очень рудиментарное понимание об искровой платформе. Из того, что я понимаю, у Spark есть концепция RDD, которая представляет собой коллекцию «материала» в памяти, поэтому обработка выполняется быстрее. You transform RDD с помощью таких методов, как карта и карты. Поскольку преобразования lazy, они не обрабатываются до тех пор, пока вы не вызовете действие на конечном RDD. О чем я не понимаю, когда вы выполняете действие, происходят ли параллельные преобразования? Можете ли вы назначить работников для выполнения команды action
?Какие операции искры обрабатываются параллельно?
Например, предположим, что у меня есть текстовый файл, который загружается в РДУ,
lines = //loadRDD
lines.map(SomeFunction())
lines.count()
Что на самом деле происходит? Does SomeFunction() обрабатывает раздел RDD? Что такое параллельный аспект?
'RDD.map' - это преобразование, возвращающее новый RDD. В этом примере он ничего не добивается: (1) вы не используете преобразованное RDD. (2) это означает, что карта никогда не будет выполнена - как вы сказали, преобразования ленивы. (3) карта не может изменить результат 'count'. – Iain