SlideShare a Scribd company logo
1 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Apache	Spark	and	Object	Stores	
—What	you	need	to	know
Steve	Loughran
stevel@hortonworks.com	
@steveloughran
October	2016
Steve Loughran,
Hadoop committer, PMC member, …
Chris Nauroth,
Apache Hadoop committer & PMC
ASF member
Rajesh Balamohan
Tez Committer, PMC Member
3 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
ORC, Parquet
datasets
inbound
Elastic	ETL
HDFS
external
4 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
datasets
external
Notebooks
library
5 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Streaming
6 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
A	Filesystem:	Directories,	Files	à Data
/
work
pending
part-00
part-01
00
00
00
01
01
01
complete
part-01
rename("/work/pending/part-01", "/work/complete")
7 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Object	Store:	hash(name)->blob
00
00
00
01
01
s01 s02
s03 s04
hash("/work/pending/part-01")
["s02", "s03", "s04"]
copy("/work/pending/part-01",
"/work/complete/part01")
01
01
01
01
delete("/work/pending/part-01")
hash("/work/pending/part-00")
["s01", "s02", "s04"]
8 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
REST	APIs
00
00
00
01
01
s01 s02
s03 s04
HEAD /work/complete/part-01
PUT /work/complete/part01
x-amz-copy-source: /work/pending/part-01
01
DELETE /work/pending/part-01
PUT /work/pending/part-01
... DATA ...
GET /work/pending/part-01
Content-Length: 1-8192
GET /?prefix=/work&delimiter=/
9 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Often:	Eventually	Consistent
00
00
00
01
01
s01 s02
s03 s04
01
DELETE /work/pending/part-00
GET /work/pending/part-00
GET /work/pending/part-00
200
200
200
10 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
org.apache.hadoop.fs.FileSystem
hdfs s3awasb adlswift gs
11 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
s3:// —“inode on S3”
s3n://
“Native” S3
s3a://
Replaces s3n
swift://
OpenStack
wasb://
Azure WASB
s3a:// Stabilize
oss://
Aliyun
gs://
Google Cloud
s3a://
Speed and consistency adl://
Azure Data Lake
2006
2008
2013
2014
2015
2016
s3://
Amazon EMR S3
History of Object Storage Support
12 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Cloud	Storage	Connectors
Azure WASB ● Strongly consistent
● Good performance
● Well-tested on applications (incl. HBase)
ADL ● Strongly consistent
● Tuned for big data analytics workloads
Amazon Web Services S3A ● Eventually consistent - consistency work in
progress by Hortonworks
● Performance improvements in progress
● Active development in Apache
EMRFS ● Proprietary connector used in EMR
● Optional strong consistency for a cost
Google Cloud Platform GCS ● Multiple configurable consistency policies
● Currently Google open source
● Good performance
● Could improve test coverage
13 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Four	Challenges
1. Classpath
2. Credentials
3. Code
4. Commitment
Let's look At S3 and Azure
14 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Use	S3A	to	work	with	S3	
(EMR: use	Amazon's	s3://	)
15 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Classpath:	fix	“No	FileSystem for	scheme:	s3a”
hadoop-aws-2.7.x.jar
aws-java-sdk-1.7.4.jar
joda-time-2.9.3.jar
(jackson-*-2.6.5.jar)
See SPARK-7481
Get Spark with
Hadoop 2.7+ JARs
16 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Credentials
core-site.xml or	spark-default.conf
spark.hadoop.fs.s3a.access.key MY_ACCESS_KEY
spark.hadoop.fs.s3a.secret.key MY_SECRET_KEY
spark-submit automatically	propagates	Environment	Variables
export AWS_ACCESS_KEY=MY_ACCESS_KEY
export AWS_SECRET_KEY=MY_SECRET_KEY
NEVER: share, check in to SCM, paste in bug reports…
17 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Authentication	Failure:	403
com.amazonaws.services.s3.model.AmazonS3Exception:
The request signature we calculated does not match
the signature you provided.
Check your key and signing method.
1. Check joda-time.jar & JVM version
2. Credentials wrong
3. Credentials not propagating
4. Local system clock (more likely on VMs)
18 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Code:	Basic	IO
// Read in public dataset
val lines = sc.textFile("s3a://landsat-pds/scene_list.gz")
val lineCount = lines.count()
// generate and write data
val numbers = sc.parallelize(1 to 10000)
numbers.saveAsTextFile("s3a://hwdev-stevel-demo/counts")
All you need is the URL
19 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Code:	just	use	the	URL	of	the	object	store
val csvdata = spark.read.options(Map(
"header" -> "true",
"inferSchema" -> "true",
"mode" -> "FAILFAST"))
.csv("s3a://landsat-pds/scene_list.gz")
...read time O(distance)
20 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
DataFrames
val landsat = "s3a://stevel-demo/landsat"
csvData.write.parquet(landsat)
val landsatOrc = "s3a://stevel-demo/landsatOrc"
csvData.write.orc(landsatOrc)
val df = spark.read.parquet(landsat)
val orcDf = spark.read.parquet(landsatOrc)
21 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Finding	dirty	data	with	Spark	SQL	
val sqlDF = spark.sql(
"SELECT id, acquisitionDate, cloudCover"
+ s" FROM parquet.`${landsat}`")
val negativeClouds = sqlDF.filter("cloudCover < 0")
negativeClouds.show()
* filter columns and data early
* whether/when to cache()?
* copy popular data to HDFS
22 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
spark-default.conf
spark.sql.parquet.filterPushdown true
spark.sql.parquet.mergeSchema false
spark.hadoop.parquet.enable.summary-metadata false
spark.sql.orc.filterPushdown true
spark.sql.orc.splits.include.file.footer true
spark.sql.orc.cache.stripe.details.size 10000
spark.sql.hive.metastorePartitionPruning true
23 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Notebooks? Classpath & Credentials
24 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
The	Commitment	Problem
⬢ rename() used	for	atomic	commitment	transaction
⬢ time	to	copy()	+	delete()	proportional	to	data	*	files
⬢ S3:	6+	MB/s	
⬢ Azure:	a	lot	faster	—usually
spark.speculation false
spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version 2
spark.hadoop.mapreduce.fileoutputcommitter.cleanup.skipped true
25 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
What about Direct Output Committers?
26 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Recent	S3A	Performance	(Hadoop	2.8,	HDP	2.5,	CDH	5.9	(?))
// forward seek by skipping stream
spark.hadoop.fs.s3a.readahead.range 157810688
// faster backward seek for ORC and Parquet input
spark.hadoop.fs.s3a.experimental.input.fadvise random
// PUT blocks in separate threads
spark.hadoop.fs.s3a.fast.output.enabled true
27 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Azure	Storage:	wasb://	
A	full	substitute	for	HDFS
28 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Classpath:	fix	“No	FileSystem for	scheme:	wasb”
wasb:// :	Consistent,	with	very	fast	rename	(hence:	commits)
hadoop-azure-2.7.x.jar
azure-storage-2.2.0.jar
+ (jackson-core; http-components, hadoop-common)
29 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Credentials:	core-site.xml /		spark-default.conf
<property>
<name>fs.azure.account.key.example.blob.core.windows.net</name>
<value>0c0d44ac83ad7f94b0997b36e6e9a25b49a1394c</value>
</property>
spark.hadoop.fs.azure.account.key.example.blob.core.windows.net
0c0d44ac83ad7f94b0997b36e6e9a25b49a1394c
wasb://demo@example.blob.core.windows.net
30 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Example:	Azure	Storage	and	Streaming
val streaming = new StreamingContext(sparkConf,Seconds(10))
val azure = "wasb://demo@example.blob.core.windows.net/in"
val lines = streaming.textFileStream(azure)
val matches = lines.map(line => {
println(line)
line
})
matches.print()
streaming.start()
* PUT into the streaming directory
* keep the dir clean
* size window for slow scans
31 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Not	Covered
⬢ Partitioning/directory	layout
⬢ Infrastructure	Throttling
⬢ Optimal	path	names
⬢ Error	handling
⬢ Metrics
32 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Summary
⬢ Object	Stores	look	just	like	any	other	URL
⬢ …but	do	need	classpath	and	configuration
⬢ Issues:	performance,	commitment
⬢ Use	Hadoop	2.7+	JARs
⬢ Tune	to	reduce	I/O
⬢ Keep	those	credentials	secret!
Spark Summit EU talk by Steve Loughran
34 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Backup	Slides
35 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Dependencies	in	Hadoop	2.8
hadoop-aws-2.8.x.jar
aws-java-sdk-core-1.10.6.jar
aws-java-sdk-kms-1.10.6.jar
aws-java-sdk-s3-1.10.6.jar
joda-time-2.9.3.jar
(jackson-*-2.6.5.jar)
hadoop-aws-2.8.x.jar
azure-storage-4.2.0.jar
36 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
S3	Server-Side	Encryption
⬢ Encryption	of	data	at	rest	at	S3
⬢ Supports	the	SSE-S3	option:	each	object	encrypted	by	a	unique	key	
using	AES-256	cipher
⬢ Now	covered	in	S3A	automated	test	suites
⬢ Support	for	additional	options	under	development	(SSE-KMS	and	SSE-C)
37 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Advanced	authentication
<property>
<name>fs.s3a.aws.credentials.provider</name>
<value>
org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider,
org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider,
com.amazonaws.auth.EnvironmentVariableCredentialsProvider,
com.amazonaws.auth.InstanceProfileCredentialsProvider,
org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider
</value>
</property>
+encrypted credentials in JECKS files on
HDFS
38 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
What Next? Performance and
integration
39 ©	Hortonworks	Inc.	2011	– 2016.	All	Rights	Reserved
Next	Steps	for	all Object	Stores
⬢ Output	Committers
– Logical	commit	operation	decoupled	from	rename	(non-atomic	and	costly	in	object	stores)
⬢ Object	Store	Abstraction	Layer
– Avoid	impedance	mismatch	with	FileSystem API
– Provide	specific	APIs	for	better	integration	with	object	stores:	saving,	listing,	copying
⬢ Ongoing	Performance	Improvement
⬢ Consistency

More Related Content

PDF
Spark Summit EU talk by Jorg Schad
PDF
Spark Summit EU talk by Debasish Das and Pramod Narasimha
PDF
Spark Summit EU talk by Jim Dowling
PDF
Spark Summit EU talk by Ruben Pulido and Behar Veliqi
PPTX
LLAP: Sub-Second Analytical Queries in Hive
PPTX
ETL with SPARK - First Spark London meetup
PPTX
Keeping Spark on Track: Productionizing Spark for ETL
PDF
Spark Summit EU talk by Debasish Das and Pramod Narasimha
Spark Summit EU talk by Jorg Schad
Spark Summit EU talk by Debasish Das and Pramod Narasimha
Spark Summit EU talk by Jim Dowling
Spark Summit EU talk by Ruben Pulido and Behar Veliqi
LLAP: Sub-Second Analytical Queries in Hive
ETL with SPARK - First Spark London meetup
Keeping Spark on Track: Productionizing Spark for ETL
Spark Summit EU talk by Debasish Das and Pramod Narasimha

What's hot (20)

PDF
The Future of Apache Storm
PDF
Spark Streaming Programming Techniques You Should Know with Gerard Maas
PPTX
Intro to Big Data Analytics using Apache Spark and Apache Zeppelin
PPTX
A Developer’s View into Spark's Memory Model with Wenchen Fan
PDF
Spark Summit EU talk by Bas Geerdink
PPTX
Hive on spark is blazing fast or is it final
PDF
Tachyon and Apache Spark
PPTX
Hadoop, Hive, Spark and Object Stores
PDF
Sqoop on Spark for Data Ingestion
PDF
How To Connect Spark To Your Own Datasource
PPTX
Have your Cake and Eat it Too - Architecture for Batch and Real-time processing
PDF
Cost-based Query Optimization
PDF
Analyzing IOT Data in Apache Spark Across Data Centers and Cloud with NetApp ...
PPTX
Apache Spark and Object Stores
PDF
Spark Summit EU talk by Miklos Christine paddling up the stream
PDF
Opaque: A Data Analytics Platform with Strong Security: Spark Summit East tal...
PDF
Sparking up Data Engineering: Spark Summit East talk by Rohan Sharma
PDF
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
PDF
Apache Eagle - Monitor Hadoop in Real Time
PDF
Reactive app using actor model & apache spark
The Future of Apache Storm
Spark Streaming Programming Techniques You Should Know with Gerard Maas
Intro to Big Data Analytics using Apache Spark and Apache Zeppelin
A Developer’s View into Spark's Memory Model with Wenchen Fan
Spark Summit EU talk by Bas Geerdink
Hive on spark is blazing fast or is it final
Tachyon and Apache Spark
Hadoop, Hive, Spark and Object Stores
Sqoop on Spark for Data Ingestion
How To Connect Spark To Your Own Datasource
Have your Cake and Eat it Too - Architecture for Batch and Real-time processing
Cost-based Query Optimization
Analyzing IOT Data in Apache Spark Across Data Centers and Cloud with NetApp ...
Apache Spark and Object Stores
Spark Summit EU talk by Miklos Christine paddling up the stream
Opaque: A Data Analytics Platform with Strong Security: Spark Summit East tal...
Sparking up Data Engineering: Spark Summit East talk by Rohan Sharma
Building Scalable Data Pipelines - 2016 DataPalooza Seattle
Apache Eagle - Monitor Hadoop in Real Time
Reactive app using actor model & apache spark
Ad

Viewers also liked (19)

PDF
Spark Summit EU talk by Ted Malaska
PDF
Spark Summit EU talk by Luca Canali
PPTX
Spark Summit EU talk by Sameer Agarwal
PDF
Beyond Parallelize and Collect by Holden Karau
PDF
Spark Summit EU talk by Herman van Hovell
PDF
Spark Summit EU talk by John Musser
PDF
Enhancing Spark SQL Optimizer with Reliable Statistics
PDF
Spark Summit EU talk by Qifan Pu
PDF
2do boletin emancipacion de la mujer
PDF
あいにきて IoT
PDF
Leanforms folder panterra
PPT
Walden3 twin slideshare 01
ODP
MSII service global
PPT
Afl presentation
PDF
Science and Nature Portfolio
PDF
9789740333616
PPTX
PJD101 First Class
PDF
Culinary Arts Institute - programme
PPT
Techno-Freedom Seder Haggadah
Spark Summit EU talk by Ted Malaska
Spark Summit EU talk by Luca Canali
Spark Summit EU talk by Sameer Agarwal
Beyond Parallelize and Collect by Holden Karau
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by John Musser
Enhancing Spark SQL Optimizer with Reliable Statistics
Spark Summit EU talk by Qifan Pu
2do boletin emancipacion de la mujer
あいにきて IoT
Leanforms folder panterra
Walden3 twin slideshare 01
MSII service global
Afl presentation
Science and Nature Portfolio
9789740333616
PJD101 First Class
Culinary Arts Institute - programme
Techno-Freedom Seder Haggadah
Ad

Similar to Spark Summit EU talk by Steve Loughran (20)

PPTX
Spark Summit East 2017: Apache spark and object stores
PPTX
Apache Spark and Object Stores —for London Spark User Group
PDF
Spark and Object Stores —What You Need to Know: Spark Summit East talk by Ste...
PPTX
Put is the new rename: San Jose Summit Edition
PPTX
Dancing Elephants - Efficiently Working with Object Stores from Apache Spark ...
PPTX
Building highly scalable data pipelines with Apache Spark
PPTX
PUT is the new rename()
PPTX
Dancing Elephants: Working with Object Storage in Apache Spark and Hive
PPTX
Dancing Elephants - Efficiently Working with Object Stories from Apache Spark...
PPTX
Intro to Spark with Zeppelin
PPTX
Crash Course HS16Melb - Hands on Intro to Spark & Zeppelin
PPTX
Dancing elephants - efficiently working with object stores from Apache Spark ...
PPTX
Intro to Spark
PPTX
Big Data processing with Spark, Scala or Java?
PPTX
Apache Spark Crash Course
PPTX
Spark Summit EMEA - Arun Murthy's Keynote
PPTX
Spark and Hadoop Perfect Togeher by Arun Murthy
PPTX
Apache Spark: Lightning Fast Cluster Computing
PDF
Introduction to Apache Spark
PDF
Python and Bigdata - An Introduction to Spark (PySpark)
Spark Summit East 2017: Apache spark and object stores
Apache Spark and Object Stores —for London Spark User Group
Spark and Object Stores —What You Need to Know: Spark Summit East talk by Ste...
Put is the new rename: San Jose Summit Edition
Dancing Elephants - Efficiently Working with Object Stores from Apache Spark ...
Building highly scalable data pipelines with Apache Spark
PUT is the new rename()
Dancing Elephants: Working with Object Storage in Apache Spark and Hive
Dancing Elephants - Efficiently Working with Object Stories from Apache Spark...
Intro to Spark with Zeppelin
Crash Course HS16Melb - Hands on Intro to Spark & Zeppelin
Dancing elephants - efficiently working with object stores from Apache Spark ...
Intro to Spark
Big Data processing with Spark, Scala or Java?
Apache Spark Crash Course
Spark Summit EMEA - Arun Murthy's Keynote
Spark and Hadoop Perfect Togeher by Arun Murthy
Apache Spark: Lightning Fast Cluster Computing
Introduction to Apache Spark
Python and Bigdata - An Introduction to Spark (PySpark)

More from Spark Summit (20)

PDF
FPGA-Based Acceleration Architecture for Spark SQL Qi Xie and Quanfu Wang
PDF
VEGAS: The Missing Matplotlib for Scala/Apache Spark with DB Tsai and Roger M...
PDF
Apache Spark Structured Streaming Helps Smart Manufacturing with Xiaochang Wu
PDF
Improving Traffic Prediction Using Weather Data with Ramya Raghavendra
PDF
A Tale of Two Graph Frameworks on Spark: GraphFrames and Tinkerpop OLAP Artem...
PDF
No More Cumbersomeness: Automatic Predictive Modeling on Apache Spark Marcin ...
PDF
Apache Spark and Tensorflow as a Service with Jim Dowling
PDF
Apache Spark and Tensorflow as a Service with Jim Dowling
PDF
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
PDF
Next CERN Accelerator Logging Service with Jakub Wozniak
PDF
Powering a Startup with Apache Spark with Kevin Kim
PDF
Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
PDF
Hiding Apache Spark Complexity for Fast Prototyping of Big Data Applications—...
PDF
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
PDF
Spline: Apache Spark Lineage not Only for the Banking Industry with Marek Nov...
PDF
Goal Based Data Production with Sim Simeonov
PDF
Preventing Revenue Leakage and Monitoring Distributed Systems with Machine Le...
PDF
Getting Ready to Use Redis with Apache Spark with Dvir Volk
PDF
Deduplication and Author-Disambiguation of Streaming Records via Supervised M...
PDF
MatFast: In-Memory Distributed Matrix Computation Processing and Optimization...
FPGA-Based Acceleration Architecture for Spark SQL Qi Xie and Quanfu Wang
VEGAS: The Missing Matplotlib for Scala/Apache Spark with DB Tsai and Roger M...
Apache Spark Structured Streaming Helps Smart Manufacturing with Xiaochang Wu
Improving Traffic Prediction Using Weather Data with Ramya Raghavendra
A Tale of Two Graph Frameworks on Spark: GraphFrames and Tinkerpop OLAP Artem...
No More Cumbersomeness: Automatic Predictive Modeling on Apache Spark Marcin ...
Apache Spark and Tensorflow as a Service with Jim Dowling
Apache Spark and Tensorflow as a Service with Jim Dowling
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
Next CERN Accelerator Logging Service with Jakub Wozniak
Powering a Startup with Apache Spark with Kevin Kim
Improving Traffic Prediction Using Weather Datawith Ramya Raghavendra
Hiding Apache Spark Complexity for Fast Prototyping of Big Data Applications—...
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
Spline: Apache Spark Lineage not Only for the Banking Industry with Marek Nov...
Goal Based Data Production with Sim Simeonov
Preventing Revenue Leakage and Monitoring Distributed Systems with Machine Le...
Getting Ready to Use Redis with Apache Spark with Dvir Volk
Deduplication and Author-Disambiguation of Streaming Records via Supervised M...
MatFast: In-Memory Distributed Matrix Computation Processing and Optimization...

Recently uploaded (20)

PPTX
Moving the Public Sector (Government) to a Digital Adoption
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
Computer network topology notes for revision
PPTX
Business Acumen Training GuidePresentation.pptx
PPTX
Supervised vs unsupervised machine learning algorithms
PDF
Fluorescence-microscope_Botany_detailed content
PDF
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
PPTX
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
climate analysis of Dhaka ,Banglades.pptx
PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PDF
Galatica Smart Energy Infrastructure Startup Pitch Deck
PPTX
Database Infoormation System (DBIS).pptx
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PDF
Foundation of Data Science unit number two notes
Moving the Public Sector (Government) to a Digital Adoption
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
Computer network topology notes for revision
Business Acumen Training GuidePresentation.pptx
Supervised vs unsupervised machine learning algorithms
Fluorescence-microscope_Botany_detailed content
168300704-gasification-ppt.pdfhghhhsjsjhsuxush
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
oil_refinery_comprehensive_20250804084928 (1).pptx
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
Miokarditis (Inflamasi pada Otot Jantung)
climate analysis of Dhaka ,Banglades.pptx
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
Galatica Smart Energy Infrastructure Startup Pitch Deck
Database Infoormation System (DBIS).pptx
Introduction-to-Cloud-ComputingFinal.pptx
Data_Analytics_and_PowerBI_Presentation.pptx
Foundation of Data Science unit number two notes

Spark Summit EU talk by Steve Loughran