Big Data 7: valsas de yorks com Apache NiFi

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Nesta postagem, construo um pipeline Apache NiFi de ponta a ponta com o meu pacote R yorkr. Esta postagem é um espelho da minha postagem anterior Big Data-5: kNiFing através de dados de críquete com o yorkpy, com base no meu pacote python yorkpy. O Apache NiFi Data Pipeilne flui da fonte, onde os dados são obtidos, até a saída da análise. O Apache NiFi foi criado para automatizar o fluxo de dados entre sistemas. Os fluxos de dados NiFi permitem o fluxo automatizado e gerenciado de informações entre sistemas. Este post automatiza o fluxo de dados do Cricsheet, de onde o arquivo zip é baixado, descompactado, processado, transformado e, finalmente, os players T20.

Este post usa as funções do meu pacote R yorkr para classificar jogadores de IPL. Este é um exemplo de fluxo, de um pipeline típico de Big Data em que os dados são ingeridos de diversos sistemas de origem, transformados e, finalmente, insights são gerados. Enquanto eu executo esse exemplo de NiFi com meu pacote R de york, em um pipeline típico de Big Data em que os dados são enormes, da ordem de 100s de GB, estaríamos usando o ecossistema Hadoop com Hive, HDFS Spark e assim por diante. Como os dados são obtidos do Cricsheet, que são poucos megabytes, essa abordagem seria suficiente. No entanto, se supormos hipoteticamente que existem vários lotes de dados de críquete que estão sendo carregados na fonte, de diferentes correspondências de críquete acontecendo em todo o mundo e os dados históricos excederem vários GBs, poderíamos usar um padrão Apache NiFi semelhante para processar os dados e gerar insights. Se os dados forem grandes e distribuídos pelo cluster do Hadoop, precisaríamos usar o SparkR ou SparklyR para processar os dados.

Isso é mostrado abaixo na figura

Embora este post exiba as fileiras dos batedores de IPL, é possível criar um painel interessante usando tecnologias de interface do usuário / UX, como o AngularJS / ReactJS. Dê uma olhada no meu post Big Data 6: A dança T20 do Apache NiFi e yorkpy, onde eu crio um painel simples de várias análises

Leia Também  SR2 Capítulo 2 Médio | R-bloggers

O meu pacote R yorkr pode lidar com ODI de homens e mulheres e todos os formatos de T20 no Cricsheet, a saber, Intl. T20 (masculino, feminino), IPL, BBL, Natwest T20, PSL, BBL feminino etc. Para saber mais detalhes sobre yorkr, consulte Revitalizando o pacote R yorkr

O código pode ser bifurcado no Github em yorkrWithApacheNiFi

Você pode dar uma olhada na demonstração ao vivo do pipeline de NiFi nas valsas de york com o Apache NiFi

Fluxo básico

1. Fluxo total

O fluxo geral de NiFi contém 2 grupos de processos a) Faça o download e descompacte. b) Converta e classifique batedores do IPL. Embora pareça que os grupos de processos estão desconectados, eles não estão. O primeiro grupo de processos baixa o arquivo zip T20, descompacta o arquivo. zip e salva os arquivos YAML em uma pasta específica. O segundo grupo de processos monitora essa pasta e inicia o processamento assim que os arquivos YAML estiverem disponíveis. Ele processa a YAML convertendo-a em quadros de dados antes de armazená-lo como arquivo CSV. O próximo processador faz a classificação real dos batedores antes de gravar a saída no IPLrank.txt

1.1 Grupo de processos DownloadAndUnpack

Este grupo de processos é mostrado abaixo

1.1.1 GetT20Data

O processador GetT20Data baixa o arquivo zip, dado o URL

A variável $ {T20data} aponta para o formato T20 específico que precisa ser baixado. Eu configurei isso para https://cricsheet.org/downloads/ipl.zip. Pode ser definido qualquer outro conjunto de dados. De fato, poderíamos ter fluxos de dados paralelos para diferentes conjuntos de dados T20 / Sports e gerar

Leia Também  Você não vai se aposentar como seus pais

1.1.2 SaveUnpackedData

Este processador armazena os arquivos YAML em uma pasta predeterminada, para que os dados possam ser coletados pelo 2º grupo de processos para processamento

1.2 ProcessAndRankT20Players Process Group

Este é o segundo grupo de processos que converte os arquivos YAML em quadros de dados do pandas antes de armazená-los como. Arquivos CSV. Os RankIPLPlayers irão ler todos os arquivos CSV, empilhá-los e prosseguir para classificar os players de IPL. O grupo de processos é mostrado abaixo

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

1.2.1 Processadores ListFile e FetchFile

Os 2 Processors ListFile e FetchFile esquerdos obtêm todos os arquivos YAML da pasta e os passam para o próximo processador

1.2.2 Processador convertYaml2DataFrame

O processador convertYaml2DataFrame usa o ExecuteStreamCommand que chama Rscript. O Rscript invocou a função yorkr convertYaml2DataframeT20 (), como mostrado abaixo

Eu também uso 16 tarefas simultâneas para converter 16 arquivos de fluxo diferentes ao mesmo tempo

library(yorkr)
args

1.2.3 Processador MergeContent

A única tarefa deste processador é acionar os rankIPLPlayers quando todos os FlowFiles forem mesclados em um arquivo.

1.2.4 PosiçãoT20Jogadores

Este processador é um processador ExecuteStreamCommand que executa um Rscript que invoca uma função yorrkr rankIPLT20Batsmen ()

library(yorkr)
args

1.2.5 OutputRankofT20Player Processor

This processor writes the generated rank to an output file.

 

1.3 Final Ranking of IPL T20 players

The Nodejs based web server picks up this file and displays on the web page the final ranks (the code is based on a good youtube for reading from file)

[1] "Chennai Super Kings"
[1] "Deccan Chargers"
[1] "Delhi Daredevils"
[1] "Kings XI Punjab"
[1] "Kochi Tuskers Kerala"
[1] "Kolkata Knight Riders"
[1] "Mumbai Indians"
[1] "Pune Warriors"
[1] "Rajasthan Royals"
[1] "Royal Challengers Bangalore"
[1] "Sunrisers Hyderabad"
[1] "Gujarat Lions"
[1] "Rising Pune Supergiants"
[1] "Chennai Super Kings-BattingDetails.RData"
[1] "Deccan Chargers-BattingDetails.RData"
[1] "Delhi Daredevils-BattingDetails.RData"
[1] "Kings XI Punjab-BattingDetails.RData"
[1] "Kochi Tuskers Kerala-BattingDetails.RData"
[1] "Kolkata Knight Riders-BattingDetails.RData"
[1] "Mumbai Indians-BattingDetails.RData"
[1] "Pune Warriors-BattingDetails.RData"
[1] "Rajasthan Royals-BattingDetails.RData"
[1] "Royal Challengers Bangalore-BattingDetails.RData"
[1] "Sunrisers Hyderabad-BattingDetails.RData"
[1] "Gujarat Lions-BattingDetails.RData"
[1] "Rising Pune Supergiants-BattingDetails.RData"
# A tibble: 429 x 4
   batsman     matches meanRuns meanSR
                  
 1 DA Warner       130     37.9   128.
 2 LMP Simmons      29     37.2   106.
 3 CH Gayle        125     36.2   134.
 4 HM Amla          16     36.1   108.
 5 ML Hayden        30     35.9   129.
 6 SE Marsh         67     35.9   120.
 7 RR Pant          39     35.3   135.
 8 MEK Hussey       59     33.8   105.
 9 KL Rahul         59     33.5   128.
10 MN van Wyk        5     33.4   112.
# … with 419 more rows

Conclusão

Este post demonstrou um pipeline de ponta a ponta com o Apache NiFi e o pacote york yorkr. Você pode usar esse pipeline e gerar análises diferentes usando as várias funções do yorkr e exibi-las em um painel.

Espero que tenham gostado com o post!

Veja também
1. A mecânica das redes neurais convolucionais em Tensorflow e Keras
2. Aprendizado profundo dos primeiros princípios em Python, R e Oitava - Parte 7
3. Simulação divertida de uma corrente no Android
4. Processamento de linguagem natural: o que Shakespeare diria?
5. TWS-4: Protocolo de fofocas: epidemias e rumores para o resgate
6. Cricketr aprende novos truques: Realiza análises detalhadas dos jogadores
7. Introdução ao QCSimulator: Um simulador de computação quântica de 5 qubit em R
8. Aprendizado de Máquina Prático com R e Python - Parte 5
9. Cricpy adiciona análises de equipe ao seu arsenal !!

Para ver as postagens, clique em Índice de postagens



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha o seu sabor: e-mail, twitter, RSS ou facebook ...



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br