map(func)

Retorna um novo RDD formado pela passagem de cada elemento do RDD de origem através de uma da função func.

Exemplo:


In [3]:
data = sc.parallelize(range(1, 11))

def duplicar(x): return x*x

# data é um rdd
res = data.map( duplicar )

print (res.collect())


[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

filter(func)

Retorna um novo RDD formado pela seleção daqueles elemento do RDD de origem que, quando passados para função func, retorna true.

Exemplo:


In [4]:
data = sc.parallelize(range(1, 11))

res = data.filter(lambda x: x%2 ==1)

print(res.collect())


[1, 3, 5, 7, 9]

flatMap(func)

Semelhante ao map, porém cada item de entrada pode ser mapeado para 0 ou mais itens de saída (assim, func deve retornar uma lista em vez de um único item).

Exemplo:


In [5]:
data = sc.parallelize(["Linha 1", "Linha 2"])

def partir(l): return l.split(" ")

print ('map:', data.map(partir).collect())

print ('flatMap:', data.flatMap(partir).collect())


map: [['Linha', '1'], ['Linha', '2']]
flatMap: ['Linha', '1', 'Linha', '2']

intersection(otherRDD)

Retorna um novo RDD que contém a interseção dos elementos no RDD de origem e o outro RDD (argumento).

Exemplo:


In [7]:
two_multiples = sc.parallelize(range(0, 20, 2))

three_multiples = sc.parallelize(range(0, 20, 3))

print (two_multiples.intersection(three_multiples).collect())


[0, 18, 12, 6]

groupByKey()

Quando chamado em um RDD de pares (K, V), retorna um conjunto de dados de pares (K, Iterable<V>).

Exemplo:


In [9]:
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])

for pair in data.groupByKey().collect():
    print (pair[0], list(pair[1]))


b [2, 5]
c [3]
a [1, 2, 3]

reduceByKey(func)

Quando chamado em um RDD de pares (K, V), retorna um RDD de pares (K, V) onde os valores de cada chave são agregados usando a função de redução func, que deve ser do tipo (V, V): V (recebe 2 valores e retorna um novo valor).

Exemplo:


In [11]:
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])

res = data.reduceByKey( lambda x,y: x+y )

print (res.collect())


[('b', 7), ('c', 3), ('a', 6)]

sortByKey([asceding])

Quando chamado em um RDD de pares (K, V) em que K é ordenável, retorna um RDD de pares (K, V) ordenados por chaves em ordem ascendente ou descendente, conforme especificado no argumento ascending.

Exemplo:


In [36]:
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])

print(data.sortByKey(ascending=False).collect())


[('c', 3), ('b', 2), ('b', 5), ('a', 1), ('a', 2), ('a', 3)]

In [ ]: