PySpark: получение элементов определенного раздела RDD

Я пытаюсь распечатать / взять элементы определенного раздела. В этом вопросе я нашел элегантный способ сделать это в Scala, используя этот код:

distData.mapPartitionsWithIndex( (index: Int, it: Iterator[Int]) =>it.toList.map(x => if (index ==5) {println(x)}).iterator).collect

Я изо всех сил пытаюсь преобразовать это в Python, не могли бы вы мне помочь?

P.S: Кроме того, в отличие от вышеупомянутого решения, я просто хочу взять первые 5 элементов раздела, а не печатать их все.


person anwartheravian    schedule 12.12.2016    source источник


Ответы (1)


Вы можете:

from itertools import islice

rdd.mapPartitions(lambda it: islice(it, 0, 5))

or

rdd.mapPartitionsWithIndex(lambda i, it: islice(it, 0, 5) if i == x else [])
person Community    schedule 12.12.2016
comment
Пропущено withIndex - person ; 12.12.2016