André Claudino
https://www.linkedin.com/in/andreclaudino/
https://github.com/andreclaudino
http://t.me/aclaudino
PhD. Física Computacional
(Física Matemática com IA simbólica)
time: IA Front
Worker
Réplica
Worker
Réplica
Worker
Réplica
Worker
Réplica
(...)
bases regulares
Worker
Dados
Worker
Dados
Worker
Dados
Worker
Dados
RW
R
R
R
replica set
Worker
trabalhador
Worker
Worker
Worker
(...)
Big Data
Worker
Dados distribuídos
Worker
mestre
trabalhador
trabalhador
trabalhador
Consistência
Disponibilidade
(Availability)
Tolerância
CT
TD
CD
Processamento
def mapper(person: Person): String = {
return person.name
}
def menorIdade(idade1: Int, idade2: Int): Int = {
return min(idade1, idade2)
}
val idadesFuncionarios =
Seq(18, 23, 50, 20, 28,
18, 51, 50, 15)
val menorIdade =
idadesFuncionarios
.reduce(menorIdade)
print(menorIdade)
// 18
Compõe etapas de mapeadores com etapas de redutores.
Nome | Nascimento | Setor |
---|---|---|
Estela | 20/03/2000 | Dev |
Mário | 30/09/1987 | Infra |
Breno | 11/01/1986 | Dev |
Flávia | 10/10/2001 | DB |
Joaquim | 28/02/1997 | Infra |
// Maior e menor idades dos funcionários
def calculaIdade(pessoa: Pessoa): Int = {...}
val funcionarios: Seq[Pessoa] = Seq(...)
val idades = funcionarios
.map(calculaIdade)
val menorIdade = idades.reduce(min)
val maiorIDade = idades.reduce(max)
Compõe etapas de mapeadores com etapas de redutores.
Nome | Nascimento | Setor |
---|---|---|
Estela | 20/03/2000 | Dev |
Mário | 30/09/1987 | Infra |
Breno | 11/01/1986 | Dev |
Flávia | 10/10/2001 | DB |
Joaquim | 28/02/1997 | Infra |
// Conta funcionários no setor específico
def contaFuncionarios(funcionarios:Seq[Pessoas],
setor: String): Int = {
return
funcionarios
.map(functionario => {
if(funcionario.setor == setor)
return 1
else
return 0
})
.reduce(sum)
}
Versões ocultas
// Operações map
val texto = "Um simples texto, totalmente normal"
val textoCaixaAlta = toUpperCase(texto)
// UM SIMPLES TEXTO, TOTALMENTE NORMAL
val comAcentos = "têxto com palávras chêias de acêntos"
val semAcentos = StringUtils.stripAccents(String input)
// texto com palavras cheias de acentos
val listaDeCoisas: Seq[Coisas] = Seq({...})
listaDeCoisas.count()
val listaDeNumeros: Seq[Int] = Seq({...})
listaDeNumeros.max()
listaDeNumeros.min()
listaDeStrings = Seq("Luke", "eu", "sou", "seu", "pai")
listaDeStrings.mkString(",")
// Luke,eu,sou,seu,pai
Arquitetura
Trabalhadores
Dados
Dados
├── domain=brasil.elpais.com
│ ├── data=2019-07-06
│ │ └── hora=22
│ │ └── 7127bcb8c3f6570bb98c23f94dc0d0f2.json
│ ├── data=2019-07-08
│ │ ├── hora=10
│ │ │ └── c9b3e4b269bdb1d3778283a2a0280eca.json
│ │ ├── hora=18
│ │ │ └── 1b17b38eba151a4dfc0519800ce30d87.json
│ │ └── hora=21
│ │ └── 46e0b542c2911c3a79aaf8076a8e1bb0.json
│ ├── data=2019-07-15
│ │ ├── hora=11
│ │ │ └── 28f3ab3d518727b6484d8f2cb86206a2.json
│ │ ├── hora=12
│ │ │ └── a4a684a04bcfcfc51ccb9fa6fe2d4eb5.json
│ │ ├── hora=14
│ │ │ └── 4dfb6dcf40d39e89fe59ac037ab10774.json
│ │ ├── hora=17
│ │ │ └── e3a3e62c9ed402657447405e680fb8ef.json
│ │ ├── hora=21
│ │ │ └── ed49ac957183b66b85d6e283ee124579.json