Visão Geral
- Domine o Apache Spark usando Scala com técnicas avançadas e comece uma lucrativa carreira de Big Data!
- Domine os conceitos da estrutura e desenvolvimento do Apache Spark
- Exercícios aprofundados e projetos em tempo real no Apache Spark
- Saiba mais sobre o Apache Spark Core, Spark Internals, RDD, Spark SQL, etc.
- Obtenha conhecimento abrangente da linguagem de programação Scala
Nesta era de inteligência artificial, aprendizado de máquina e ciência de dados, algoritmos executados em computação iterativa distribuída facilitam a tarefa de distribuir e computar grandes volumes de dados. Spark é uma estrutura de computação em cluster na memória extremamente rápida que pode ser usada para uma variedade de finalidades. Esta estrutura de software livre baseada em JVM pode ser usada para processar e analisar grandes volumes de dados e, ao mesmo tempo, pode ser usada para distribuir dados em um cluster de máquinas. Ele é projetado de forma que possa executar processamento em lote e fluxo e, portanto, é conhecido como uma plataforma de computação em cluster. Scala é a linguagem em que o Spark é desenvolvido. Scala é uma linguagem de programação poderosa e dinâmica que não compromete a segurança dos tipos.
Você sabe o segredo por trás do funcionamento perfeito do mapa do Uber? Aqui está uma dica, as imagens coletadas pela equipe de coleta de dados do mapa são acessadas pela equipe de downstream do Apache Spark e são avaliadas pelos operadores responsáveis pelas edições do mapa. Vários formatos de arquivo são suportados pelo Apache Spark, que permite que vários registros sejam armazenados em um único arquivo.
De acordo com uma pesquisa recente da DataBricks, 71% dos usuários do Spark usam Scala para programação. Spark com Scala é uma combinação perfeita para se manter fundamentado no mundo do Big Data. 9 em cada 10 empresas têm essa combinação bem-sucedida funcionando em suas organizações. O Spark tem mais de 1000 colaboradores em mais de 250 organizações, tornando-o o projeto de código aberto mais popular de todos os tempos. O mercado do Apache Spark deve crescer a um CAGR de 67% entre 2019 e 2022, empurrando uma alta demanda por profissionais treinados.
Conteúdo Programatico
Introduction to Big Data Hadoop and Spark
Learning Objectives: Understand Big Data and its components such as HDFS. You will learn about the Hadoop Cluster Architecture. You will also get an introduction to Spark and the difference between batch processing and real-time processing.
- What is Big Data?
- Big Data Customer Scenarios
- What is Hadoop?
- Hadoop’s Key Characteristics
- Hadoop Ecosystem and HDFS
- Hadoop Core Components
- Rack Awareness and Block Replication
- YARN and its Advantage
- Hadoop Cluster and its Architecture
- Hadoop: Different Cluster Modes
- Big Data Analytics with Batch & Real-time Processing
- Why Spark is needed?
- What is Spark?
- How Spark differs from other frameworks?
- Hands-on: Scala REPL Detailed Demo.
Introduction to Scala
Learning Objectives: Learn the basics of Scala that are required for programming Spark applications. Also learn about the basic constructs of Scala such as variable types, control structures, collections such as Array, ArrayBuffer, Map, Lists, and many more.
- What is Scala?
- Why Scala for Spark?
- Scala in other Frameworks
- Introduction to Scala REPL
- Basic Scala Operations
- Variable Types in Scala
- Control Structures in Scala
- Foreach loop, Functions and Procedures
- Collections in Scala- Array
- ArrayBuffer, Map, Tuples, Lists, and more
- Hands-on: Scala REPL Detailed Demo
Object Oriented Scala and Functional Programming Concepts
Learning Objectives: Learn about object-oriented programming and functional programming techniques in Scala.
- Variables in Scala
- Methods, classes, and objects in Scala
- Packages and package objects
- Traits and trait linearization
- Java Interoperability
- Introduction to functional programming
- Functional Scala for the data scientists
- Why functional programming and Scala are important for learning Spark?
- Pure functions and higher-order functions
- Using higher-order functions
- Error handling in functional Scala
- Functional programming and data mutability
- Hands-on: OOPs Concepts- Functional Programming
Collection APIs
Learning Objectives: Learn about the Scala collection APIs, types and hierarchies. Also, learn about performance characteristics.
- Scala collection APIs
- Types and hierarchies
- Performance characteristics
- Java interoperability
- Using Scala implicits
Introduction to Spark
Learning Objectives: Understand Apache Spark and learn how to develop Spark applications.
- Introduction to data analytics
- Introduction to big data
- Distributed computing using Apache Hadoop
- Introducing Apache Spark
- Apache Spark installation
- Spark Applications
- The back bone of Spark – RDD
- Loading Data
- What is Lambda
- Using the Spark shell
- Actions and Transformations
- Associative Property
- Implant on Data
- Persistence
- Caching
- Loading and Saving data
Hands-on:
- Building and Running Spark Applications
- Spark Application Web UI
- Configuring Spark Properties
Operations of RDD
Learning Objectives: Get an insight of Spark - RDDs and other RDD related manipulations for implementing business logic (Transformations, Actions, and Functions performed on RDD)
- Challenges in Existing Computing Methods
- Probable Solution & How RDD Solves the Problem
- What is RDD, Its Operations, Transformations & Actions
- Data Loading and Saving Through RDDs
- Key-Value Pair RDDs
- Other Pair RDDs, Two Pair RDDs
- RDD Lineage
- RDD Persistence
- WordCount Program Using RDD Concepts
- RDD Partitioning & How It Helps Achieve Parallelization
- Passing Functions to Spark
Hands-on:
- Loading data in RDD
- Saving data through RDDs
- RDD Transformations
- RDD Actions and Functions
- RDD Partitions
- WordCount through RDDs
DataFrames and Spark SQL
Learning Objectives: Learn about SparkSQL which is used to process structured data with SQL queries, data-frames and datasets in Spark SQL along with different kinds of SQL operations performed on the data-frames. Also, learn about the Spark and Hive integration.
- Need for Spark SQL
- What is Spark SQL?
- Spark SQL Architecture
- SQL Context in Spark SQL
- User Defined Functions
- Data Frames & Datasets
- Interoperating with RDDs
- JSON and Parquet File Formats
- Loading Data through Different Sources
- Spark – Hive Integration
Hands-on:
- Spark SQL – Creating Data Frames
- Loading and Transforming Data through Different Sources
- Spark-Hive Integration
Machine learning using MLlib
Learning Objectives: Learn why machine learning is needed, different Machine Learning techniques/algorithms, and SparK MLlib.
- Why Machine Learning?
- What is Machine Learning?
- Where Machine Learning is Used?
- Different Types of Machine Learning Techniques
- Introduction to MLlib
- Features of MLlib and MLlib Tools
- Various ML algorithms supported by MLlib
- Optimization Techniques
Using Spark MLlib
Learning Objectives: Implement various algorithms supported by MLlib such as Linear Regression, Decision Tree, Random Forest and so on
- Supervised Learning - Linear Regression, Logistic Regression, Decision Tree, Random Forest
- Unsupervised Learning - K-Means Clustering
Hands-on:
- Machine Learning MLlib
- K- Means Clustering
- Linear Regression
- Logistic Regression
- Decision Tree
- Random Forest
Streaming with Kafka and Flume
Objectives: Understand Kafka and its Architecture. Also, learn about Kafka Cluster, how to configure different types of Kafka Clusters. Get introduced to Apache Flume, its architecture and how it is integrated with Apache Kafka for event processing. At the end, learn how to ingest streaming data using flume.
- Need for Kafka
- What is Kafka?
- Core Concepts of Kafka
- Kafka Architecture
- Where is Kafka Used?
- Understanding the Components of Kafka Cluster
- Configuring Kafka Cluster
- Kafka Producer and Consumer Java API
- Need of Apache Flume
- What is Apache Flume?
- Basic Flume Architecture
- Flume Sources
- Flume Sinks
- Flume Channels
- Flume Configuration
- Integrating Apache Flume and Apache Kafka
Hands-on:
- Configuring Single Node Single Broker Cluster
- Configuring Single Node Multi Broker Cluster
- Producing and consuming messages
- Flume Commands
- Setting up Flume Agent
Apache Spark Streaming
Objectives: Learn about the different streaming data sources such as Kafka and Flume. Also, learn to create a Spark streaming application.
- Apache Spark Streaming: Data Sources
- Streaming Data Source Overview
- Apache Flume and Apache Kafka Data Sources
Hands-on:
- Perform Twitter Sentimental Analysis Using Spark Streaming
Spark GraphX Programming
Objectives: Learn the key concepts of Spark GraphX programming and operations along with different GraphX algorithms and their implementations.
- A brief introduction to graph theory
- GraphX
- VertexRDD and EdgeRDD
- Graph operators
- Pregel API
- PageRank