Во-первых, идея map
состоит в том, чтобы преобразовать коллекцию, для которой вызывается карта, не изменяя другую коллекцию - foreach
было бы лучше.
Во-вторых, причина, по которой вы получаете пустой массив, заключается в том, что :+
создает копию с добавленным элементом, но не изменяет исходный массив - scaladoc .
В-третьих, массивы не являются лучшими коллекциями для инкрементного построения, потому что неэффективно изменять их размеры, вы можете сначала создать большой массив, а затем обновить каждую позицию по индексу (однако, это было бы очень важно) , или вы можете использовать ArrayBuffer
scaladoc , или вы можете отобразить список и получить List[Array[A]]
или List[List[A]]
(что был бы самый функциональный способ сделать это) .
В-четвертых, что именно вы имеете в виду, когда используете его, а также RDD
... если вы хотите построить массив с помощью итерации RDD, это концептуально неправильно. Или, если вы хотите создать RDD путем итерации List, это тоже концептуально неправильно.