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 [ ]:
data = sc.parallelize(range(1, 11))

def pow2(i): return i * i

double = data.map(pow2) # ou data.map(lambda i: i * i)

print double.collect()

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 [ ]:
data = sc.parallelize(range(1, 11))

even = data.filter(lambda i: i % 2 == 0)

print even.collect()

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 [ ]:
data = sc.parallelize(range(1, 11))

def gt_one_divisors(i): return [j for j in range(2, i) if i % j == 0 ]

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

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

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 [ ]:
two_multiples = sc.parallelize(range(0, 20, 2))

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

print two_multiples.intersection(three_multiples).collect()

groupByKey()

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

Exemplo:


In [ ]:
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])

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 [ ]:
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])

def summation(a, b): return a + b

print data.reduceByKey(summation).collect()

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 [ ]:
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])

def summation(a, b): return a + b

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

In [ ]: