SlideShare a Scribd company logo
1 of 47
Download to read offline
Sparser: Fast Analytics on Raw Data
by Avoiding Parsing
Shoumik Palkar, Firas Abuzaid, Peter Bailis, Matei Zaharia
Motivation
Bigger unstructured datasets and faster hardware.
Time
Speed
Time
DataVolume
Parsing unstructured data before querying it
is often very slow.
Today: Spark Data Sources API
Spark Core Engine
Push part of query into the data source.
Today: Spark Data Sources API
+ E.g., column pruning directly in Parquet data loader
- Little support for unstructured formats (e.g., can’t avoid JSON parsing)
Spark Core Engine
Data Source API
Push part of query into the data source.
Parsing: A Computational Bottleneck
Example: Existing state-of-the-
art JSON parsers 100x slower
than scanning a string!
113836
56796
360
0
50000
100000
150000
RapidJSON
Parsing
Mison Index
Contruction
String Scan
Cycles/5KBRecord
State-of-the-art Parsers
*Similar results on binary formats
like Avro and Parquet
Parsing seems to be a necessary evil:
how do we get around doing it?
Key Opportunity: High Selectivity
High selectivity especially true
for exploratory analytics.
0
0.2
0.4
0.6
0.8
1
1.E-09 1.E-05 1.E-01
CDF
Selectivity
Databricks Censys
40% of customer Spark queries at Databricks select < 20% of data
99% of queries in Censys select < 0.001% of data
Data Source API provides access to
query filters at data source!
How can we exploit high selectivity to accelerate parsing?
Sparser: Filter Before You Parse
Raw DataFilter
Raw DataFilter
Raw DataFilter
Raw DataParse
Raw DataParse
Today:
parse full input à slow!
Sparser: Filter before parsing first
using fast filtering functions with false
positives, but no false negatives
Demo
Count Tweets where text contains “Trump” and “Putin”
Sparser in Spark SQL
Spark Core Engine
Data Source API
val df = spark.read.format(“json”)
Sparser in Spark SQL
Spark Core Engine
Data Source API
Sparser Filtering Engine
val df = spark.read.format(“edu.stanford.sparser.json”) Sparser	Data	Source	Reader
(Also	supports	Avro,	Parquet!)
Sparser Overview
Sparser Overview
Raw Filter (“RF”): filtering function on a bytestream with false
positives but no false negatives.
Use an optimizer to combine RFs into a cascade.
But is it in the “text” field? Is the
full word “Trump”?
0x54 0x72 0x75 0x6d 0x70
T r u m b
RF
“TRUM”
Pass!
Other
RFs
Example: Tweets WHERE
text contains “Trump”
Full
Parser
Key Challenges in Using RFs
1. How do we implement the RFs efficiently?
2. How do we efficiently choose the RFs to maximize parsing
throughput for a given query and dataset?
Rest of this Talk
• Sparser’s API
• Sparser’s Raw Filter Designs (Challenge 1)
• Sparser’s Optimizer: Choosing a Cascade (Challenge 2)
• Performance Results on various file formats (e.g., JSON, Avro)
Sparser API
Sparser API
Filter Example
Exact String Match
WHERE user.name = “Trump”
WHERE likes = 5000
Sparser API
Filter Example
Exact String Match
WHERE user.name = “Trump”
WHERE likes = 5000
Contains String WHERE text contains “Trum”
Sparser API
Filter Example
Exact String Match
WHERE user.name = “Trump”
WHERE likes = 5000
Contains String WHERE text contains “Trum”
Contains Key WHERE user.url != NULL
Sparser API
Filter Example
Exact String Match
WHERE user.name = “Trump”
WHERE likes = 5000
Contains String WHERE text contains “Trum”
Contains Key WHERE user.url != NULL
Conjunctions
WHERE user.name = “Trump”
AND user.verified = true
Disjunctions
WHERE user.name = “Trump”
OR user.name = “Obama”
Sparser API
Filter Example
Exact String Match
WHERE user.name = “Trump”
WHERE likes = 5000
Contains String WHERE text contains “Trum”
Contains Key WHERE user.url != NULL
Conjunctions
WHERE user.name = “Trump”
AND user.verified = true
Disjunctions
WHERE user.name = “Trump”
OR user.name = “Obama”
Currently does not support numerical range-based predicates.
Challenge 1: Efficient RFs
Raw Filters in Sparser
SIMD-based filtering functions that pass or discard a record
by inspecting raw bytestream
113836
56796
360
0
50000
100000
150000
RapidJSON Parsing Mison Index Contruction Raw Filter
Cycles/5KBRecord
Example RF: Substring Search
Search for a small (e.g., 2, 4, or 8-byte) substring of a query
predicate in parallel using SIMD
On modern CPUs: compare 32 characters in parallel in ~4 cycles (2ns).
Length 4 Substring
packed in SIMD register
Input : “ t e x t ” : “ I j u s t m e t M r . T r u m b ! ! ! ”
Shift 1 : T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - - - -
Shift 2 : - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - - -
Shift 3 : - - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - -
Shift 4 : - - - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - -
Example query: text contains “Trump”
False positives (found “Trumb” by accident),
but no false negatives (No “Trum” ⇒ No “Trump”)
Other	RFs	also	possible!	Sparser	selects	them	agnostic	of	implementation.
Key-Value Search RF
Searches for key, and if key is found, searches for value until
some stopping point. Searches occur with SIMD.
Only applicable for exact matches
Useful for queries with common substrings (e.g., favorited=true)
Key: name Value: Trump Delimiter: ,
Ex 1: “name”: “Trump”,
Ex 2: “name”: “Actually, Trump”
Ex 3: “name”: “My name is Trump”
(Pass)
(Fail)
(Pass, False positive)
Second Example would result in false negative if we allow substring matches
Other	RFs	also	possible!	Sparser	selects	them	agnostic	of	implementation.
Challenge 2: Choosing RFs
Choosing RFs
To decrease false positive rate, combine RFs into a cascade
Sparser uses an optimizer to choose a cascade
Raw DataFilter
Raw DataFilter
Raw DataFilter
Raw
DataParse
Raw DataFilter
Raw DataParse
Raw DataFilter
Raw
DataParse
Raw DataFilter
Raw DataFilter
vs. vs.
Sparser’s Optimizer
Step 2: Measure
Params on Sample
of Records
raw bytestream
0010101000110101
RF 1
RF fails
RF 2
X
X
RF fails
Filtered bytes
sent to full parser
Step 4: Apply
Chosen Cascade
for sampled
records:
1 = passed
0 = failed
Step 3: Score and
Choose Cascade
…
(name = "Trump" AND text contains "Putin")
Step 1: Compile
Possible RFs from
predicates
RF1: "Trump"
RF2: "Trum"
RF3: "rump"
RF4: "Tr"
…
RF5: "Putin"
C (RF1) = 4
C (RF1àRF2) = 1
C (RF2àRF3) = 6
C (RF1àRF3) = 9
…
S1 S2 S3
RF 1 0 1 1
RF 2 1 0 1
Sparser’s Optimizer: Configuring RF Cascades
Three high level steps:
1. Convert a query predicate to a set of RFs
2. Measure the passthrough rate and runtime of each RF and
the runtime of the parser on sample of records
3. Minimize optimization function to find min-cost cascade
1. Converting Predicates to RFs
Running Example
(name = “Trump” AND text contains “Putin”)
OR name = “Obama”
Possible RFs*
Substring Search: Trum, Tr, ru, …, Puti, utin, Pu, ut, …, Obam, Ob, …
* Translation from predicate to RF is format-dependent:
examples are for JSON data
2. Measure RFs and Parser
Evaluate RFs and parser on a sample of records.
*Passthrough	rates	of	RFs	are	non-independent! But	too	expensive	to	
measure	rate	of	each	cascade	(combinatorial	search	space)
RF
RF
Parser
Passthrough rates*
and runtimes
2. Measure RFs and Parser
Passthrough rates of RFs are non-independent! But too
expensive to rate of each cascade (combinatorial search
space)
Solution: Store rates as bitmaps.
Pr[a] ∝ 1s in Bitmap of RF a: 0011010101
Pr[b] ∝ 1s in Bitmap of RF b: 0001101101
Pr[a,b] ∝ 1s in Bitwise-& of a, b: 0001000101
foreach sampled record i:
foreach RF j:
BitMap[i][j] = 1 if RF j passes on i
3. Choosing Best Cascade
Running Example
(name = “Trump” AND text contains “Putin”)
OR name = “Obama”
P
Trum
utinObam
PD Obam
PD
1. Valid cascade 2. Valid cascade
utin
Obam
PD
P
3. Invalid cascade (utin must
consider Obam when it fails)
Trum
utinObam
PD PD
Pass (right branch)Fail (left branch)Parse PDiscard D
Cascade cost
computed by
traversing tree from
root to leaf.
Each RF has a
runtime/passthrough
rate we measured in
previous step.
Probability and cost of
executing full parser
Probability and cost
of executing RF i
Cost of Cascade
with RFs 0,1,…,R
3. Choosing Best Cascade
𝐶" = $ Pr	[ 𝑒𝑥𝑒𝑐𝑢𝑡𝑒.]
.∈"
×𝑐. + Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒45678 ×𝑐45678
P
Trum
utinObam
PD Obam
PD
Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒96:; = 1
Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒:=.> = Pr	[Trum]
Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒BC5; = Pr	[¬Trum]	+	Pr[Trum,¬utin]
Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒45678 = Pr	[¬Trum,Obam]	+	Pr[Trum,utin]	+	Pr[Trum,¬utin,Obam]
Choose cascade with minimum cost: Sparser considers up to min(32,
# ORs) RFs and considers up to depth of 4 cascades.
Spark Integration
Sparser in Spark SQL
Spark Core Engine
Data Source API
Sparser Filtering Engine
Sparser in Spark SQL
Spark Core Engine
Data Source API
Sparser Filtering Engine
SQL Query to Candidate
Raw Filters
Native HDFS File Reader
Sparser Optimizer + Filtering
Raw Data
DataFrame
Performance Results
Evaluation Setup
Datasets
Censys - Internet port scan data used in network security
Tweets - collected using Twitter Stream API
Distributed experiments
on 20-node cluster with 4 Broadwell vCPUs/26GB of memory, locally
attached SSDs (Google Compute Engine)
Single node experiments
on Intel Xeon E5-2690 v4 with 512GB memory
Queries
Twitter queries from other academic work. Censys queries sampled randomly from top-3000
queries. PCAP and Bro queries from online tutorials/blogs.
Results: Accelerating End-to-End Spark Jobs
0
200
400
600
Disk Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9
Runtime(seconds)
Spark Spark + Sparser Query Only
Censys queries on 652GB of JSON data: up to 4x speedup by using Sparser.
1.1 1.3 0.7 1.4
0
20
40
60
80
Disk Q1 Q2 Q3 Q4
Runtime
(seconds)
Spark Spark + Sparser Query Only
Twitter queries on
68GB of JSON data:
up to 9x speedup
by using Sparser.
Results: Accelerating Existing JSON Parsers
1
10
100
1 2 3 4 5 6 7 8 9
Runtime(s,log10)
Sparser + RapidJSON Sparser + Mison RapidJSON Mison
Censys queries compared against two state-of-the-art parsers
(Mison based on SIMD): Sparser accelerates them by up to 22x.
Results: Accelerating Binary Format Parsing
0
0.5
1
1.5
Q1 Q2 Q3 Q4
Runtime
(seconds)
avro-c Sparser + avro-c
0
0.2
Q1 Q2 Q3 Q4
Runtime
(seconds)
parquet-cpp Sparser + parquet-cpp
Sparser accelerates Avro (above) and Parquet (below) based queries by up to 5x and 4.3x respectively.
Results: Domain-Specific Tasks
0
1
2
3
4
0.01
0.1
1
10
100
1000
P1 P2 P3 P4
Speedupover
libpcap
Runtime(s,log10)
Sparser libpcap Tshark tcpdump
Sparser accelerates packet parsing by up to 3.5x compared to standard tools.
Results: Sparser’s Sensitivity to Selectivity
0
20
40
60
80
100
120
0 0.2 0.4 0.6 0.8 1
Runtime(seconds)
Selectivity
RapidJSON Sparser + RapidJSON
Mison Sparser + Mison
Sparser’s
performance
degrades
gracefully as the
selectivity of the
query decreases.
Results: Nuts and Bolts
1
10
100
0 200 400
Runtime(s,log10)
Cascade
Sparser picks a cascade within 5%
of the optimal one using its
sampling-based measurement and
optimizer.
Picked by
Sparser
100
1000
10000
0 100 200
ParseThroughput
(MB/s)
File Offset (100s of MB)
With Resampling No Resampling
Resampling to calibrate the cascade
can improve end-to-end parsing time
by up to 20x.
Conclusion
Sparser:
• Uses raw filters to filter before parsing
• Selects a cascade of raw filters using an efficient optimizer
• Delivers up to 22x speedups over existing parsers
• Will be open source soon!
shoumik@cs.stanford.edu
fabuzaid@cs.stanford.edu
Questions or Comments? Contact Us!

More Related Content

What's hot

Pivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RayPivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RaySpark Summit
 
Stanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkStanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkReynold Xin
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Databricks
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfSease
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDatabricks
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationDatabricks
 
Apache Spark Fundamentals
Apache Spark FundamentalsApache Spark Fundamentals
Apache Spark FundamentalsZahra Eskandari
 
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...Edureka!
 
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...Spark Summit
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Databricks
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache SparkRahul Jain
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesDatabricks
 
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark Summit
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationDatabricks
 
Real-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka StreamsReal-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka Streamsconfluent
 
Spark streaming
Spark streamingSpark streaming
Spark streamingWhiteklay
 
Presto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation EnginesPresto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation EnginesDatabricks
 
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...Databricks
 

What's hot (20)

Pivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RayPivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew Ray
 
Stanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkStanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache Spark
 
File Format Benchmark - Avro, JSON, ORC and Parquet
File Format Benchmark - Avro, JSON, ORC and ParquetFile Format Benchmark - Avro, JSON, ORC and Parquet
File Format Benchmark - Avro, JSON, ORC and Parquet
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache Spark
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper Optimization
 
Apache Spark Fundamentals
Apache Spark FundamentalsApache Spark Fundamentals
Apache Spark Fundamentals
 
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
Pyspark Tutorial | Introduction to Apache Spark with Python | PySpark Trainin...
 
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...
Cost-Based Optimizer Framework for Spark SQL: Spark Summit East talk by Ron H...
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
 
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
 
Real-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka StreamsReal-Time Market Data Analytics Using Kafka Streams
Real-Time Market Data Analytics Using Kafka Streams
 
Spark streaming
Spark streamingSpark streaming
Spark streaming
 
Presto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation EnginesPresto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation Engines
 
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...
Near Real-Time Analytics with Apache Spark: Ingestion, ETL, and Interactive Q...
 

Similar to Sparser: Faster Parsing of Unstructured Data Formats in Apache Spark with Firas Abuzaid and Shoumik Palkar

RFS Search Lang Spec
RFS Search Lang SpecRFS Search Lang Spec
RFS Search Lang SpecJing Kang
 
Querying data on the Web – client or server?
Querying data on the Web – client or server?Querying data on the Web – client or server?
Querying data on the Web – client or server?Ruben Verborgh
 
2009 Dils Flyweb
2009 Dils Flyweb2009 Dils Flyweb
2009 Dils FlywebJun Zhao
 
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...corehard_by
 
Querying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsRuben Verborgh
 
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...Chris Fregly
 
Data Presentations Cassandra Sigmod
Data  Presentations  Cassandra SigmodData  Presentations  Cassandra Sigmod
Data Presentations Cassandra SigmodJeff Hammerbacher
 
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...Amazon Web Services
 
Extreme Scripting July 2009
Extreme Scripting July 2009Extreme Scripting July 2009
Extreme Scripting July 2009Ian Foster
 
ParlBench: a SPARQL-benchmark for electronic publishing applications.
ParlBench: a SPARQL-benchmark for electronic publishing applications.ParlBench: a SPARQL-benchmark for electronic publishing applications.
ParlBench: a SPARQL-benchmark for electronic publishing applications.Tatiana Tarasova
 
C interview-questions-techpreparation
C interview-questions-techpreparationC interview-questions-techpreparation
C interview-questions-techpreparationKushaal Singla
 
Win pcap filtering expression syntax
Win pcap  filtering expression syntaxWin pcap  filtering expression syntax
Win pcap filtering expression syntaxVota Ppt
 
postgres loader
postgres loaderpostgres loader
postgres loaderINRIA-OAK
 
Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016Chris Fregly
 
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016MLconf
 
Hardware Approaches for Fast Lookup & Classification
Hardware Approaches for Fast Lookup & ClassificationHardware Approaches for Fast Lookup & Classification
Hardware Approaches for Fast Lookup & ClassificationJignesh Patel
 

Similar to Sparser: Faster Parsing of Unstructured Data Formats in Apache Spark with Firas Abuzaid and Shoumik Palkar (20)

Serial-War
Serial-WarSerial-War
Serial-War
 
RFS Search Lang Spec
RFS Search Lang SpecRFS Search Lang Spec
RFS Search Lang Spec
 
Querying data on the Web – client or server?
Querying data on the Web – client or server?Querying data on the Web – client or server?
Querying data on the Web – client or server?
 
2009 Dils Flyweb
2009 Dils Flyweb2009 Dils Flyweb
2009 Dils Flyweb
 
Phpconf2008 Sphinx En
Phpconf2008 Sphinx EnPhpconf2008 Sphinx En
Phpconf2008 Sphinx En
 
Avro intro
Avro introAvro intro
Avro intro
 
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
 
Querying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern FragmentsQuerying federations 
of Triple Pattern Fragments
Querying federations 
of Triple Pattern Fragments
 
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...
Cassandra Summit Sept 2015 - Real Time Advanced Analytics with Spark and Cass...
 
Data Presentations Cassandra Sigmod
Data  Presentations  Cassandra SigmodData  Presentations  Cassandra Sigmod
Data Presentations Cassandra Sigmod
 
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...
AWS re:Invent 2016: How Toyota Racing Development Makes Racing Decisions in R...
 
Extreme Scripting July 2009
Extreme Scripting July 2009Extreme Scripting July 2009
Extreme Scripting July 2009
 
ParlBench: a SPARQL-benchmark for electronic publishing applications.
ParlBench: a SPARQL-benchmark for electronic publishing applications.ParlBench: a SPARQL-benchmark for electronic publishing applications.
ParlBench: a SPARQL-benchmark for electronic publishing applications.
 
C interview-questions-techpreparation
C interview-questions-techpreparationC interview-questions-techpreparation
C interview-questions-techpreparation
 
Win pcap filtering expression syntax
Win pcap  filtering expression syntaxWin pcap  filtering expression syntax
Win pcap filtering expression syntax
 
postgres loader
postgres loaderpostgres loader
postgres loader
 
Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016Atlanta MLconf Machine Learning Conference 09-23-2016
Atlanta MLconf Machine Learning Conference 09-23-2016
 
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
Chris Fregly, Research Scientist, PipelineIO at MLconf ATL 2016
 
Hardware Approaches for Fast Lookup & Classification
Hardware Approaches for Fast Lookup & ClassificationHardware Approaches for Fast Lookup & Classification
Hardware Approaches for Fast Lookup & Classification
 
Understanding TCP and HTTP
Understanding TCP and HTTP Understanding TCP and HTTP
Understanding TCP and HTTP
 

More from Databricks

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDatabricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of HadoopDatabricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDatabricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceDatabricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringDatabricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixDatabricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationDatabricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchDatabricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesDatabricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsDatabricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkDatabricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkDatabricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesDatabricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkDatabricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeDatabricks
 
Machine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack DetectionMachine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack DetectionDatabricks
 

More from Databricks (20)

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
 
Machine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack DetectionMachine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack Detection
 

Recently uploaded

detection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxdetection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxAleenaJamil4
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDRafezzaman
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Colleen Farrelly
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGIThomas Poetter
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...GQ Research
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Boston Institute of Analytics
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhijennyeacort
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfgstagge
 
Heart Disease Classification Report: A Data Analysis Project
Heart Disease Classification Report: A Data Analysis ProjectHeart Disease Classification Report: A Data Analysis Project
Heart Disease Classification Report: A Data Analysis ProjectBoston Institute of Analytics
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理e4aez8ss
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxellehsormae
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...limedy534
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort servicejennyeacort
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

detection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptxdetection and classification of knee osteoarthritis.pptx
detection and classification of knee osteoarthritis.pptx
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
Data Analysis Project : Targeting the Right Customers, Presentation on Bank M...
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdf
 
Heart Disease Classification Report: A Data Analysis Project
Heart Disease Classification Report: A Data Analysis ProjectHeart Disease Classification Report: A Data Analysis Project
Heart Disease Classification Report: A Data Analysis Project
 
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptx
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business Professionals
 

Sparser: Faster Parsing of Unstructured Data Formats in Apache Spark with Firas Abuzaid and Shoumik Palkar

  • 1. Sparser: Fast Analytics on Raw Data by Avoiding Parsing Shoumik Palkar, Firas Abuzaid, Peter Bailis, Matei Zaharia
  • 2. Motivation Bigger unstructured datasets and faster hardware. Time Speed Time DataVolume
  • 3. Parsing unstructured data before querying it is often very slow.
  • 4. Today: Spark Data Sources API Spark Core Engine Push part of query into the data source.
  • 5. Today: Spark Data Sources API + E.g., column pruning directly in Parquet data loader - Little support for unstructured formats (e.g., can’t avoid JSON parsing) Spark Core Engine Data Source API Push part of query into the data source.
  • 6. Parsing: A Computational Bottleneck Example: Existing state-of-the- art JSON parsers 100x slower than scanning a string! 113836 56796 360 0 50000 100000 150000 RapidJSON Parsing Mison Index Contruction String Scan Cycles/5KBRecord State-of-the-art Parsers *Similar results on binary formats like Avro and Parquet Parsing seems to be a necessary evil: how do we get around doing it?
  • 7. Key Opportunity: High Selectivity High selectivity especially true for exploratory analytics. 0 0.2 0.4 0.6 0.8 1 1.E-09 1.E-05 1.E-01 CDF Selectivity Databricks Censys 40% of customer Spark queries at Databricks select < 20% of data 99% of queries in Censys select < 0.001% of data Data Source API provides access to query filters at data source!
  • 8. How can we exploit high selectivity to accelerate parsing?
  • 9. Sparser: Filter Before You Parse Raw DataFilter Raw DataFilter Raw DataFilter Raw DataParse Raw DataParse Today: parse full input à slow! Sparser: Filter before parsing first using fast filtering functions with false positives, but no false negatives
  • 10. Demo Count Tweets where text contains “Trump” and “Putin”
  • 11. Sparser in Spark SQL Spark Core Engine Data Source API val df = spark.read.format(“json”)
  • 12. Sparser in Spark SQL Spark Core Engine Data Source API Sparser Filtering Engine val df = spark.read.format(“edu.stanford.sparser.json”) Sparser Data Source Reader (Also supports Avro, Parquet!)
  • 14. Sparser Overview Raw Filter (“RF”): filtering function on a bytestream with false positives but no false negatives. Use an optimizer to combine RFs into a cascade. But is it in the “text” field? Is the full word “Trump”? 0x54 0x72 0x75 0x6d 0x70 T r u m b RF “TRUM” Pass! Other RFs Example: Tweets WHERE text contains “Trump” Full Parser
  • 15. Key Challenges in Using RFs 1. How do we implement the RFs efficiently? 2. How do we efficiently choose the RFs to maximize parsing throughput for a given query and dataset? Rest of this Talk • Sparser’s API • Sparser’s Raw Filter Designs (Challenge 1) • Sparser’s Optimizer: Choosing a Cascade (Challenge 2) • Performance Results on various file formats (e.g., JSON, Avro)
  • 17. Sparser API Filter Example Exact String Match WHERE user.name = “Trump” WHERE likes = 5000
  • 18. Sparser API Filter Example Exact String Match WHERE user.name = “Trump” WHERE likes = 5000 Contains String WHERE text contains “Trum”
  • 19. Sparser API Filter Example Exact String Match WHERE user.name = “Trump” WHERE likes = 5000 Contains String WHERE text contains “Trum” Contains Key WHERE user.url != NULL
  • 20. Sparser API Filter Example Exact String Match WHERE user.name = “Trump” WHERE likes = 5000 Contains String WHERE text contains “Trum” Contains Key WHERE user.url != NULL Conjunctions WHERE user.name = “Trump” AND user.verified = true Disjunctions WHERE user.name = “Trump” OR user.name = “Obama”
  • 21. Sparser API Filter Example Exact String Match WHERE user.name = “Trump” WHERE likes = 5000 Contains String WHERE text contains “Trum” Contains Key WHERE user.url != NULL Conjunctions WHERE user.name = “Trump” AND user.verified = true Disjunctions WHERE user.name = “Trump” OR user.name = “Obama” Currently does not support numerical range-based predicates.
  • 23. Raw Filters in Sparser SIMD-based filtering functions that pass or discard a record by inspecting raw bytestream 113836 56796 360 0 50000 100000 150000 RapidJSON Parsing Mison Index Contruction Raw Filter Cycles/5KBRecord
  • 24. Example RF: Substring Search Search for a small (e.g., 2, 4, or 8-byte) substring of a query predicate in parallel using SIMD On modern CPUs: compare 32 characters in parallel in ~4 cycles (2ns). Length 4 Substring packed in SIMD register Input : “ t e x t ” : “ I j u s t m e t M r . T r u m b ! ! ! ” Shift 1 : T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - - - - Shift 2 : - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - - - Shift 3 : - - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - - Shift 4 : - - - T r u m T r u m T r u m T r u m T r u m T r u m T r u m - - - - Example query: text contains “Trump” False positives (found “Trumb” by accident), but no false negatives (No “Trum” ⇒ No “Trump”) Other RFs also possible! Sparser selects them agnostic of implementation.
  • 25. Key-Value Search RF Searches for key, and if key is found, searches for value until some stopping point. Searches occur with SIMD. Only applicable for exact matches Useful for queries with common substrings (e.g., favorited=true) Key: name Value: Trump Delimiter: , Ex 1: “name”: “Trump”, Ex 2: “name”: “Actually, Trump” Ex 3: “name”: “My name is Trump” (Pass) (Fail) (Pass, False positive) Second Example would result in false negative if we allow substring matches Other RFs also possible! Sparser selects them agnostic of implementation.
  • 27. Choosing RFs To decrease false positive rate, combine RFs into a cascade Sparser uses an optimizer to choose a cascade Raw DataFilter Raw DataFilter Raw DataFilter Raw DataParse Raw DataFilter Raw DataParse Raw DataFilter Raw DataParse Raw DataFilter Raw DataFilter vs. vs.
  • 28. Sparser’s Optimizer Step 2: Measure Params on Sample of Records raw bytestream 0010101000110101 RF 1 RF fails RF 2 X X RF fails Filtered bytes sent to full parser Step 4: Apply Chosen Cascade for sampled records: 1 = passed 0 = failed Step 3: Score and Choose Cascade … (name = "Trump" AND text contains "Putin") Step 1: Compile Possible RFs from predicates RF1: "Trump" RF2: "Trum" RF3: "rump" RF4: "Tr" … RF5: "Putin" C (RF1) = 4 C (RF1àRF2) = 1 C (RF2àRF3) = 6 C (RF1àRF3) = 9 … S1 S2 S3 RF 1 0 1 1 RF 2 1 0 1
  • 29. Sparser’s Optimizer: Configuring RF Cascades Three high level steps: 1. Convert a query predicate to a set of RFs 2. Measure the passthrough rate and runtime of each RF and the runtime of the parser on sample of records 3. Minimize optimization function to find min-cost cascade
  • 30. 1. Converting Predicates to RFs Running Example (name = “Trump” AND text contains “Putin”) OR name = “Obama” Possible RFs* Substring Search: Trum, Tr, ru, …, Puti, utin, Pu, ut, …, Obam, Ob, … * Translation from predicate to RF is format-dependent: examples are for JSON data
  • 31. 2. Measure RFs and Parser Evaluate RFs and parser on a sample of records. *Passthrough rates of RFs are non-independent! But too expensive to measure rate of each cascade (combinatorial search space) RF RF Parser Passthrough rates* and runtimes
  • 32. 2. Measure RFs and Parser Passthrough rates of RFs are non-independent! But too expensive to rate of each cascade (combinatorial search space) Solution: Store rates as bitmaps. Pr[a] ∝ 1s in Bitmap of RF a: 0011010101 Pr[b] ∝ 1s in Bitmap of RF b: 0001101101 Pr[a,b] ∝ 1s in Bitwise-& of a, b: 0001000101 foreach sampled record i: foreach RF j: BitMap[i][j] = 1 if RF j passes on i
  • 33. 3. Choosing Best Cascade Running Example (name = “Trump” AND text contains “Putin”) OR name = “Obama” P Trum utinObam PD Obam PD 1. Valid cascade 2. Valid cascade utin Obam PD P 3. Invalid cascade (utin must consider Obam when it fails) Trum utinObam PD PD Pass (right branch)Fail (left branch)Parse PDiscard D Cascade cost computed by traversing tree from root to leaf. Each RF has a runtime/passthrough rate we measured in previous step.
  • 34. Probability and cost of executing full parser Probability and cost of executing RF i Cost of Cascade with RFs 0,1,…,R 3. Choosing Best Cascade 𝐶" = $ Pr [ 𝑒𝑥𝑒𝑐𝑢𝑡𝑒.] .∈" ×𝑐. + Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒45678 ×𝑐45678 P Trum utinObam PD Obam PD Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒96:; = 1 Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒:=.> = Pr [Trum] Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒BC5; = Pr [¬Trum] + Pr[Trum,¬utin] Pr 𝑒𝑥𝑒𝑐𝑢𝑡𝑒45678 = Pr [¬Trum,Obam] + Pr[Trum,utin] + Pr[Trum,¬utin,Obam] Choose cascade with minimum cost: Sparser considers up to min(32, # ORs) RFs and considers up to depth of 4 cascades.
  • 36. Sparser in Spark SQL Spark Core Engine Data Source API Sparser Filtering Engine
  • 37. Sparser in Spark SQL Spark Core Engine Data Source API Sparser Filtering Engine SQL Query to Candidate Raw Filters Native HDFS File Reader Sparser Optimizer + Filtering Raw Data DataFrame
  • 39. Evaluation Setup Datasets Censys - Internet port scan data used in network security Tweets - collected using Twitter Stream API Distributed experiments on 20-node cluster with 4 Broadwell vCPUs/26GB of memory, locally attached SSDs (Google Compute Engine) Single node experiments on Intel Xeon E5-2690 v4 with 512GB memory
  • 40. Queries Twitter queries from other academic work. Censys queries sampled randomly from top-3000 queries. PCAP and Bro queries from online tutorials/blogs.
  • 41. Results: Accelerating End-to-End Spark Jobs 0 200 400 600 Disk Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Runtime(seconds) Spark Spark + Sparser Query Only Censys queries on 652GB of JSON data: up to 4x speedup by using Sparser. 1.1 1.3 0.7 1.4 0 20 40 60 80 Disk Q1 Q2 Q3 Q4 Runtime (seconds) Spark Spark + Sparser Query Only Twitter queries on 68GB of JSON data: up to 9x speedup by using Sparser.
  • 42. Results: Accelerating Existing JSON Parsers 1 10 100 1 2 3 4 5 6 7 8 9 Runtime(s,log10) Sparser + RapidJSON Sparser + Mison RapidJSON Mison Censys queries compared against two state-of-the-art parsers (Mison based on SIMD): Sparser accelerates them by up to 22x.
  • 43. Results: Accelerating Binary Format Parsing 0 0.5 1 1.5 Q1 Q2 Q3 Q4 Runtime (seconds) avro-c Sparser + avro-c 0 0.2 Q1 Q2 Q3 Q4 Runtime (seconds) parquet-cpp Sparser + parquet-cpp Sparser accelerates Avro (above) and Parquet (below) based queries by up to 5x and 4.3x respectively.
  • 44. Results: Domain-Specific Tasks 0 1 2 3 4 0.01 0.1 1 10 100 1000 P1 P2 P3 P4 Speedupover libpcap Runtime(s,log10) Sparser libpcap Tshark tcpdump Sparser accelerates packet parsing by up to 3.5x compared to standard tools.
  • 45. Results: Sparser’s Sensitivity to Selectivity 0 20 40 60 80 100 120 0 0.2 0.4 0.6 0.8 1 Runtime(seconds) Selectivity RapidJSON Sparser + RapidJSON Mison Sparser + Mison Sparser’s performance degrades gracefully as the selectivity of the query decreases.
  • 46. Results: Nuts and Bolts 1 10 100 0 200 400 Runtime(s,log10) Cascade Sparser picks a cascade within 5% of the optimal one using its sampling-based measurement and optimizer. Picked by Sparser 100 1000 10000 0 100 200 ParseThroughput (MB/s) File Offset (100s of MB) With Resampling No Resampling Resampling to calibrate the cascade can improve end-to-end parsing time by up to 20x.
  • 47. Conclusion Sparser: • Uses raw filters to filter before parsing • Selects a cascade of raw filters using an efficient optimizer • Delivers up to 22x speedups over existing parsers • Will be open source soon! shoumik@cs.stanford.edu fabuzaid@cs.stanford.edu Questions or Comments? Contact Us!