Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Big Data e seu fiel companheiro Spark

1.991 Aufrufe

Veröffentlicht am

Apresentação mostrando como o Spark é muito útil no dia-a-dia na globo.como, como usamos Spark para processar bilhões de eventos e incentivando a migração para o Spark 2.0.

Veröffentlicht in: Daten & Analysen

Big Data e seu fiel companheiro Spark

  1. 1. SPARK BIG DATA E SEU FIEL COMPANHEIRO
  2. 2. ENGENHEIRO DE DADOS NA GLOBO.COM @renan_oliveira
  3. 3. SPARK é de comer?
  4. 4. NÃO É DE COMER, EU ACHO.. É UM FRAMEWORK ▸ Simples e Performático ▸ Processamento de grandes dados ▸ Descomplicando “big data” ▸ Para desenvolvedores ▸ Estatísticos Friendly ▸ DataFrames estilo Pandas e R ▸ Multi linguagens e databases ▸ Além do Map/Reduce
  5. 5. SPARK SQL SPARK STREAMING MLLIB GRAPHX PACKAGES DATASET API LOGICAL PLAN PHYSICAL PLAN/TUNGSTEN EXECUTION
  6. 6. DATASETS DE RDD E DATAFRAME PARA
  7. 7. DATASET É A FORMA QUE O SPARK CONSEGUE SER PERFORMÁTICO, ELE CRIA “MAGICAMENTE" UM PLANO DE AÇÃO DISTRIBUÍDO SOBRE AQUELA AÇÃO. DATASET É LINDO - DATAFRAME É O NOVO DATASET[ROW]
  8. 8. GRANDESDADOS.COM PRA QUE USAMOS NA GLOBO.COM ▸ recommendation ▸ machine learning ▸ analytics ▸ a/b test ▸ pipeline ▸ workflow ▸ data driven organization
  9. 9. ▸ + 50 jobs em produção nesse momento ▸ Streaming e Batch ▸ Scala e Python ▸ MLlib e SQL ▸ Desde a versão 0.9, 2013 ▸ +120 pessoas já usaram na globo.com E AÍ VCS USAM MESMO?
  10. 10. UM DOS MAIORES CASES DO BRASIL SHOW ME THE NUMBERS ▸ 50 milhões de usuários únicos mês ▸ 3.5 bilhões de eventos por dia ▸ 100 mil novos conteúdos ▸ 1 milhão de conexões simultâneas
  11. 11. ▸ SQL ▸ Algoritmos prontos ▸ Otimizações gratuitas ▸ Open-Souce ▸ Comunidade enorme ▸ maior projeto da apache ▸ n consultorias VOU TER QUE APRENDER UM MUNDO NOVO?
  12. 12. SPARK 2.0 o que era bom ficou melhor!
  13. 13. 10X MAIS RÁPIDO QUE A 1.6 PARA OPERAÇÕES EM SQL Spark Release VELOCIDADE É IMPORTANTE
  14. 14. SCALA - AIRFLOW EM SERVIÇOS/APIS
  15. 15. TUNGSTEN INDO ALÉM DA JVM
  16. 16. val pageview = spark.read.parquet(path) val pvByUserAndProduct = pageview .groupBy("user", "product") .count() pvByUserAndProduct.describe().show() summary count count 25236 mean 2.45276 stddev 2.02837 min 1 max 40
  17. 17. val pvValidUsers = removeFromPartitions(pvByUserAndProduct) def removeFromPartitions(df: DataFrame): DataFrame = { df.cache() val partitions = df.select("product").distinct().collect() val cleanedPartitionsData = partitions.par.map { row => val partition = row(0) val partitionData = df.filter(df("product") === partition) val cutted = cut99(partitionData) partitionData.filter(partitionData("count") < cutted) } val result = cleanedPartitionsData.reduce[DataFrame] { case (leftDF, rightDF) => leftDF union rightDF } result } def cut99(df: DataFrame): Double = { df.stat.approxQuantile("count", Array(0.99), 0.001).head }
  18. 18. val pvValidUsers = removeFromPartitions(pvByUserAndProduct) pvValidUsers.describe().show() summary count count 24983 mean 2.33754 stddev 1.79223 min 1 max 9
  19. 19. JUPYTER - PYTHON ESTAMOS MUDANDO A EMPRESA COM
  20. 20. IF YOU WANT TO CONVINCE ME OF SOMETHING… SHOW ME NUMBERS
  21. 21. OBRIGADO! RENAN OLIVEIRA - @RENAN_OLIVEIRA WWW.RENANOLIVEIRA.NET WWW.GRANDESDADOS.COM
  22. 22. talentos.globo.com

×