Documente Academic
Documente Profesional
Documente Cultură
Curs - 4 - BigData (Spark)
Curs - 4 - BigData (Spark)
Curs 4
SQL
2
Introducere
3
Introducere
4
Introducere
Probleme Soluții
5
Arhitectura Spark SQL
6
Arhitectura Spark SQL
7
Arhitectura Spark SQL
• Language API:
• Spark este compatibil cu diferite limbaje (și Spark SQL)
• Este suportat de către aceste limbaje prin intermediul API-urilor (Python, Java, Scala, HiveQL)
• SchemaRDD / DataFrame:
• Structura de date centrală a lui Spark Core este RDD
• În general, Spark SQL lucrează cu scheme, tabele și înregistrări.
• Prin urmare, putem utiliza SchemaRDD ca tabel temporar.
• Schema RDD -> Data Frame (în Spark >=1.3.0)
• Data Sources:
• În general, sursa de date pentru Spark Core este un fișier text, Avro etc.
• Sursele de date pentru Spark SQL sunt diferite: fișier Parquet, document JSON, tabele Hive, baze
de date (Cassandra).
8
Caracteristici ale Spark SQL
1. Integrare:
9
Caracteristici ale Spark SQL
3. Compatibilitatea cu Hive:
10
Caracteristici ale Spark SQL
4. Conectivitatea standard:
11
Caracteristici ale Spark SQL
5. Performanță și scalabilitate:
• Utilizarea aceluiași motor atât pentru cereri interactive, cât și pentru cele care necesită mult
timp de procesare.
• Spark SQL beneficiază de avantajul modelului RDD pentru a suporta toleranța la defecte.
• Scalează la mii de noduri și cereri de durată mare, folosind motorul Spark
12
SPARK SQL
DATASET AND DATAFRAME
13
Dataset și DataFrame
14
Dataset și DataFrame
15
Dataset și DataFrame
[https://www.analyticsvidhya.com/blog/2020/11/what-is-the-difference-between-rdds-
dataframes-and-datasets/]
16
Dataset și DataFrame
• DataFrame
• Datele sunt organizate în coloane denumite, similar unui tabel dintr-o bază de date relațională
17
Caracteristicile unui DataFrame
18
Crearea unui DataFrame
19
Crearea unui DataFrame
20
SPARK SQL și HIVE
21
Compatibilitatea cu Hive
22
Hive
23
Arhitectura Hive
24
Funcții definite de utilizator
25
SPARK SQL vs SQL
26
Spark SQL
27
„Write less code” – I/O
28
ETL folosind surse de date
specifice
sqlContext.read
.format("com.databricks.spark.git")
.option("url",
"https://github.com/apache/spark.git")
.option("numPartitions", "100")
.option("branches",
"master,branch--‐1.3,branch--‐1.2")
.load()
.repartition(1)
.write
.format("json")
.save("/home/michael/spark.json")
29
„Write less code” – Operații
30
„Write less code” – calculul
mediei
31
„Write less code” – calculul
mediei
Cu ajutorul RDD-urilor:
32
Implementări mai rapide
33
„Read less data”
34
Optimizare
35
Optimizare
36
Optimizare
37
Pipeline ML
38
Cum funcționează?
39
Exemplu
40
Planificarea cererii
41
Execuție optimizată
42
Librăria TreeNode
43
Transformări pe arbori
44
Scrierea de reguli ca operații de
transformare pe arbori
45
Coborârea operațiilor de filtrare
Arbore
Funcție parțială
46
Coborârea operațiilor de filtrare
Se identifică filtrarea
asupra proiecției
47
Coborârea operațiilor de filtrare
48
Coborârea operațiilor de filtrare
49
Coborârea operațiilor de filtrare
Pattern Matching (Scala)
50
Optimizarea cu reguli
51
Demo 1
52
Demo 2
53
Demo 2 (continuare)
54
Bibliografie
4. http://parquet.incubator.apache.org/
5. https://towardsdatascience.com/pyspark-and-sparksql-basics-
6cb4bf967e53
55