neste blog, vamos aprender a responder à pergunta mais frequente da “Spark interview”. Eu poderia dizer, 90 por cento das pessoas encontram esta questão em suas entrevistas, ou seja, qual é a principal diferença entre mapa e plano em faísca? e em alguns casos, as pessoas são convidadas a escrever um pedaço de código para ilustrar o princípio de trabalho por trás do mapa vs Plano. Se você é novato para BigData e precisa de alguma rápida olhar para a programação PySpark, então eu recomendo que você leia Como escrever Contagem de Palavras em faísca .Vamos aprender a responder a esta pergunta com um simples exemplo em tempo real.
Apache Spark provides basic operation to be performed on top of the basic Build block of the Spark Core called RDD. Estas operações não são nada além das funções ou método com alguma lógica nele para transformar o RDD e obter a saída esperada a partir dele. Pode ser uma lógica simples para filtrar ou para ordenar ou então para resumir os resultados globais. As operações realizadas em cima da nossa Spark RDD podem ser classificadas em dois tipos:,

      • transformação
      • acções

o que é transformação?

transformações de faísca são o processo de conversão ou transformação do dado RDD de dados, que é imutável na natureza em um outro RDD de dados, aplicando alguma lógica de transformação a ele. Se precisar de mais detalhes sobre o que é o Spark RDD? siga o link para aprender em detalhes sobre Spark RDD. O ponto mais importante a ser notado abaixo é que quando aplicamos a transformação em cima de qualquer RDD em faísca, a operação não é realizada imediatamente. Ele irá salvar a lista de operações a serem realizadas no topo da RDD fonte em uma sequência, criando um DAG, (grafo acíclico direcionado). Uma vez que a ação de faísca é chamada para fora, toda a transformação na sequência de DAG será executada. Esta propriedade de Spark é definida como uma execução de Spark preguiçoso. Podemos aprender mais em detalhes sobre a transformação, ação e execução especulativa em nossos próximos capítulos. Agora, para seguir em frente, as transformações são a operação básica executada no topo do Spark RDD e poucos exemplos de transformações são Mapa, Plano, Filtro, Mappartição, etc.

caso de uso para Entender:

Vamos considerar um arquivo de entrada como um arquivo de texto e contém alguns frase como mostrado abaixo. Nossa tarefa é aplicar a transformação de mapa e mapa plano um a um e observar os resultados produzidos para entender o trabalho e ganhar conhecimento sobre onde usar mapa e mapa plano. Nós fazemos isso aplicando a função split () no mapa superior() e FlatMap () em PySpark. A mesma lógica pode ser aplicada na programação Scala e Java, bem como uma ligeira modificação da sintaxe.

trecho de Código para ler o arquivo de texto usando SparkSession:

Mapa de Operação:

Mapa é um tipo de Faísca, de Transformação, o qual é usado para executar a operação no nível de registro. A operação Spark Map aplica a lógica a ser realizada, definida pelo código personalizado dos desenvolvedores em cada coleções em RDD e fornece os resultados para cada linha como uma nova coleção de RDD.

em palavras simples, a transformação do mapa transforma a coleção de RDD de dado comprimento, digamos L, em RDD processados do mesmo comprimento L. tipicamente, o número de registros ou elementos entre a entrada e a saída de RDD permanecerá o mesmo. Agora é hora de alguns hands-on, vamos aplicar a operação do mapa para o dado arquivo de entrada com a função split nele e verificar a contagem de linhas de entrada e saída de registros produzidos.
excerto do Código:
# operação do mapa
map_RDD=input_ RDD.mapa (lambda x: x. split (‘))
map_RDD.retirar ()
:

a partir da saída, é evidente que ao usar o número da função do mapa de registros de saída irá Exatamente corresponder ao número de registros de entrada passados ao processo. Nós podemos verificar o número de registros usando a função count() como mostrado no diagrama abaixo. Podemos observar que tanto a entrada como a saída têm uma contagem recorde de 4.

em cenário de palavra real, Função de mapa com lógica dividida é muitas vezes usado para formar spark dataframe para fazer Operação de nível de tabela. Para saber mais sobre DataFrames, passe por este link Como criar Dataframe em Spark.

FlatMap Operation:

FlatMap in Apache Spark is a transformation operation that results in zero or more elements to the each element present in the input RDD. É semelhante à função de mapa, ele aplica a lógica construída pelo Usuário para cada registro no RDD e retorna os registros de saída como novo RDD. Em flatmap(), se o RDD de entrada com o comprimento diz L é passado para a lógica definida pelo usuário, então ele produz o RDD de saída de comprimento diferente dizer M.

o excerto de código para executar a função split () na transformação flatmap () é apresentado abaixo.
excerto do Código:
# operação FlatMap
flatmap_ RDD = input_ RDD.flatMap (lambda x: x. split (‘))
flatmap_ RDD.recolher()
Out:

podemos observar que o número de linhas de entrada passadas para flatmap não é igual ao número de saída que temos. Aplicando a função count() no topo do flatmap_rdd, podemos obter o número de registros nele.

podemos notar que o RDD de entrada tem 4 registros, enquanto o RDD de saída flatten tem 12 registros. Flatmap() é geralmente usado para obter o número de palavras, Contagem de palavras frequentemente usadas pelo falante no documento dado que será útil no campo de análise de texto.

Programa Completo: