Spark Coalesce

Spark Coalesce
O processamento de big data é um tópico quente no mundo técnico. Há um grande número de bibliotecas e estruturas que estão sendo usadas para processamento regular de big data. Discutiremos uma estrutura, o Apache Spark, que é um mecanismo de processamento de dados para dados distribuídos massivamente. Também discutiremos um de seus métodos populares, o Spark Coalesce, que é usado para reduzir as partições do conjunto de dados, juntamente com seu exemplo.

O que é Spark Apache?

A Apache Spark é uma ferramenta de processamento de dados gratuita e de código aberto que usa estruturas básicas de programação para persistir e analisar dados em tempo real em vários grupos de computadores.

Spark começou como um experimento de amplaborismo na UC Berkeley em 2009. Faz parte da licença BSD que é divulgada em 2010. Spark se tornou um projeto Apache em 2013. Em 2014, os Databricks obtiveram um novo recorde mundial, classificando conjuntos de dados em larga escala com Spark. O Spark suporta várias linguagens de programação como R, Python, Java e Scala e é 100 vezes mais rápido que o MapReduce no processamento dos dados, pois são feitos na memória. Ele contém menos linhas de código e, para autenticação, usa um código compartilhado. Também pode operar em fios, aproveitando as capacidades de Kerberos. É baseado no Hadoop MapReduce e estende o conceito MapReduce para empregar efetivamente os novos tipos de cálculos.

A principal vantagem do Spark sobre o Hadoop está utilizando uma arquitetura de processamento na memória. Para usar o armazenamento de replicação distribuído, a Spark pode operar no topo do HDFS. O Spark pode ser utilizado no mesmo cluster Hadoop que MapReduce ou como uma estrutura de processamento independente. O fio também pode executar aplicações de faísca. Em vez de usar um espaço de memória local para cálculo, a Spark emprega uma computação na memória, permitindo que os usuários processem os dados na RAM e recuperam-os rapidamente. Spark não se destina a substituir o Hadoop; pode ser considerado um elogio.

MapReduce e Spark são usados ​​em conjunto: MapReduce lida com processamento em lote enquanto o Spark lida com processamento em tempo real. O código Spark pode ser reutilizado para o processamento em lote, juntando-se a fluxos contra dados históricos e fazendo consultas ad-hoc no estado do fluxo. Spark inclui streaming de ferramentas de dados, pesquisas interativas/declarativas, aprendizado de máquina e mapear e reduzir.

O que é o método Spark Coalesce?

O método Coalesce é usado para diminuir o número de partições do conjunto de dados. O Coalesce evita o Shuffle completo, embaralhando os dados usando o Partiote Hash (padrão) e se ajusta às partições existentes, em vez de gerar novas. Isso significa que só pode reduzir o número de partições. Em Spark SQL, o Coalesce O método regular é um método não agregado. Para reduzir a quantidade dos dados movidos, o Coalesce usa divisões existentes. Se todas as colunas forem nulas, a Coalesce retornará o primeiro valor não nulo. Coalesce é mais rápido que a repartição porque evita todo o Shuffling, enquanto a repartição faz um Shuffling completo, que é demorado e caro. Pelo menos uma coluna é necessária para a coalescência, e todas as colunas devem ser da mesma ou de tipos compatíveis.

Exemplo de usar o método Coalesce

Para testar a função Spark Coalesce, use o seguinte comando:

testdf = sqlContext.CreatedAtAframe ([(1,1), (2,2), (nenhum, 3), (4, nenhum)], ["id", "value"])
+----+------+
| ID | Valor |
+----+------+
| 1 | 1 |
| 2 | 2 |
| nulo | 3 |
| 4 | nulo |
+----+------+

Importar as funções Pyspark necessárias usando o seguinte comando:

de Pyspark.SQL.Tipos Importar FloatType

de Pyspark.SQL.Funções Importar *

Para criar uma nova coluna com valores não nulos, aplique o seguinte comando:

tmp = testdf.WithColumn ('Col', Coalesce (testdf ['id'], testdf ['value'])))
TMP.mostrar()
+----+------+---------+
| id | valor | col |
+----+------+---------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| nulo | 3 | 3 |
| 4 | nulo | 4 |
+----+------+---------+

Conclusão

Discutimos sobre o Apache Spark, Spark SQL e Spark SQL Coalesce Method. Aprendemos que ele pode ser usado para reduzir as partições do quadro de dados, juntamente com um exemplo. Também percebemos que o método Coalesce só pode ser usado para reduzir o número de partições enquanto o particionamento pode ser usado para diminuir ou aumentar as partições.