<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 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
Step1:  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
Step2:  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
Step3:  intersection(otherRDD)
Retorna um novo RDD que contém a interseção dos elementos no RDD de origem e o outro RDD (argumento).
Exemplo
Step4:  groupByKey()
Quando chamado em um RDD de pares (K, V), retorna um conjunto de dados de pares (K, Iterable&lt;V&gt;).
Exemplo
Step5:  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)
Step6:  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
<ASSISTANT_TASK:>
Python Code:
data = sc.parallelize(range(1, 11))
def duplicar(x): return x*x
# data é um rdd
res = data.map( duplicar )
print (res.collect())
Explanation: 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:
End of explanation
data = sc.parallelize(range(1, 11))
res = data.filter(lambda x: x%2 ==1)
print(res.collect())
Explanation: 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:
End of explanation
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())
Explanation: 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:
End of explanation
two_multiples = sc.parallelize(range(0, 20, 2))
three_multiples = sc.parallelize(range(0, 20, 3))
print (two_multiples.intersection(three_multiples).collect())
Explanation: intersection(otherRDD)
Retorna um novo RDD que contém a interseção dos elementos no RDD de origem e o outro RDD (argumento).
Exemplo:
End of explanation
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]))
Explanation: groupByKey()
Quando chamado em um RDD de pares (K, V), retorna um conjunto de dados de pares (K, Iterable&lt;V&gt;).
Exemplo:
End of explanation
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())
Explanation: 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:
End of explanation
data = sc.parallelize([ ('a', 1), ('b', 2), ('c', 3) , ('a', 2), ('b', 5), ('a', 3)])
print(data.sortByKey(ascending=False).collect())
Explanation: 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:
End of explanation
<END_TASK>