SlideShare a Scribd company logo
WIFI SSID:Spark+AISummit | Password: UnifiedDataAnalytics
#UnifiedDataAnalytics #SparkAISummit
#UnifiedDataAnalytics #SparkAISummit
Graphs are everywhere
3
#UnifiedDataAnalytics #SparkAISummit
… and growing
4
#UnifiedDataAnalytics #SparkAISummit
Graphs at Spark Summit
5
#UnifiedDataAnalytics #SparkAISummit
Property Graphs & Big Data
The Property Graph data model is becoming increasingly mainstream
Cloud graph data services like Azure CosmosDB or Amazon Neptune
Simple graph features in SQLServer 2017, multiple new graph DB products
New graph query language to be standardized by ISO
Neo4j becoming common operational store in retail, finance, telcos … and more
Increasing interest in graph algorithms over graph data as a basis for AI
Apache® Spark is the leading scale-out clustered memory solution for Big Data
Spark 2: Data viewed as tables (DataFrames), processed by SQL,
in function chains, using queries and user functions,
transforming immutable tabular data sets
6
#UnifiedDataAnalytics #SparkAISummit
Graphs are coming to Spark
7
[SPARK-25994]
SPIP: Property Graphs, Cypher Queries, and Algorithms
Goal
● bring Property Graphs and the Cypher Query language to
Spark
● the SparkSQL for graphs
Status
● Accepted by the community
● Implementation still Work in Progress
#UnifiedDataAnalytics #SparkAISummit
Demonstration
#UnifiedDataAnalytics #SparkAISummit
The Property Graph
#UnifiedDataAnalytics #SparkAISummit
The Whiteboard Model Is the Physical Model
Eliminates
Graph-to-Relational
Mapping
In your data
Bridge the gap
between logical
model and DB
models
#UnifiedDataAnalytics #SparkAISummit
REVIEW
S
name: “Dan”
born: May 29, 1970
twitter: “@dan”
name: “Ann”
born: Dec 5, 1975
date:
Jan 10, 2011
name: “Cars, Inc”
sector:
“automotive”
Property Graph Model Components
Nodes
• The objects in the graph
• Can have name-value
properties
• Can be labeled
KNOWS
KNOWS
FOLLOWS
REVIEW
S
User User
Relationships
• Relate nodes by type and
direction
• Can have name-value
properties Business
#UnifiedDataAnalytics #SparkAISummit
Relational Versus Graph Models
Relational Model Graph Model
REVIEWS
REVIEWS
REVIEWS
Alice
Burgers, Inc
Pizza, Inc
Pretzels
User BusinessUser-Business
Alice
Burgers, Inc
Pretzels
Pizza, Inc
#UnifiedDataAnalytics #SparkAISummit
Graphs in Spark 3.0
#UnifiedDataAnalytics #SparkAISummit
Tables for Labels
• In Spark Graph, PropertyGraphs are represented by
– Node Tables and Relationship Tables
• Tables are represented by DataFrames
– Require a fixed schema
• Property Graphs have a Graph Type
– Node and relationship types that occur in the graph
– Node and relationship properties and their data type
Property Graph
Node Tables
Rel. Tables
Graph Type
#UnifiedDataAnalytics #SparkAISummit
Tables for Labels
:User:ProAccount
name: Alice
:Business
name: Burgers, Inc
:REVIEWS
id name
0 Alice
id name
1 Burgers, Inc
id source target
0 0 1
:User:ProAccount
:Business
:REVIEWS
Graph Type {
:User:ProAccount (
name: STRING
),
:Business (
name: STRING
),
:REVIEWS
}
#UnifiedDataAnalytics #SparkAISummit
Creating a graph
Property Graphs are created from a set of DataFrames.
There are two possible options:
- Using Wide Tables
- one DF for nodes and one for relationships
- column name convention identifies label and property
columns
- Using NodeFrames and RelationshipFrames
- requires a single DataFrame per node label combination and
relationship type
- allows mapping DF columns to properties
16
#UnifiedDataAnalytics #SparkAISummit
Storing and Loading
business.json
user.json
review.json
Create Node and
Relationship Tables
Create Property Graph Store Property Graph
as Parquet
17
#UnifiedDataAnalytics #SparkAISummit
Demonstration
#UnifiedDataAnalytics #SparkAISummit
Graph Querying with
Cypher
#UnifiedDataAnalytics #SparkAISummit
What is Cypher?
• Declarative query language for graphs
– "SQL for graphs"
• Based on pattern matching
• Supports basic data types for properties
• Functions, aggregations, etc
20
#UnifiedDataAnalytics #SparkAISummit
Pattern matching
a b
1
4
3
2
5
1 2
32
4 5
Query graph: Data graph: Result:
#UnifiedDataAnalytics #SparkAISummit
Basic Pattern: Alice's reviews?
(:User {name:'Alice'} ) -[:REVIEWS]-> (business:Business)
REVIEWS
User
Forrest
Gump
VAR LABEL
NODE NODE
?
LABEL PROPERTY
RELATIONSHIP
Type
#UnifiedDataAnalytics #SparkAISummit
Cypher query structure
• Cypher operates over a graph and returns a table
• Basic structure:
MATCH pattern
WHERE predicate
RETURN/WITH expression AS alias, ...
ORDER BY expression
SKIP ... LIMIT ...
#UnifiedDataAnalytics #SparkAISummit
Basic Query:
Businesses Alice has reviewed?
MATCH (user:User)-[r:REVIEWS]->(b:Business)
WHERE user.name = 'Alice'
RETURN b.name, r.rating
#UnifiedDataAnalytics #SparkAISummit
Query Comparison: Colleagues of Tom Hanks?
SELECT co.name AS coReviewer, count(co) AS nbrOfCoReviews
FROM User AS user
JOIN UserBusiness AS ub1 ON (user.id = ub1.user_id)
JOIN UserBusiness AS ub2 ON (ub1.b_id = ub2.b_id)
JOIN User AS co ON (co.id = ub2.user_id)
WHERE user.name = "Alice"
GROUP BY co.name
MATCH
(user:User)-[:REVIEWS]->(:Business)<-[:REVIEWS]-(co:User)
WHERE user.name = 'Alice'
RETURN co.name AS coReviewer, count(*) AS nbrOfCoReviews
#UnifiedDataAnalytics #SparkAISummit
Variable-length patterns
MATCH (a:User)-[r:KNOWS*2..6]->(other:User)
RETURN a, other, length(r) AS length
Allows the traversal of paths of variable length
Returns all results between the minimum and maximum number of
hops
26
#UnifiedDataAnalytics #SparkAISummit
Aggregations
• Cypher supports a number of aggregators
– min(), max(), sum(), avg(), count(), collect(), ...
• When aggregating, non-aggregation projections form a grouping
key:
MATCH (u:User)
RETURN u.name, count(*) AS count
The above query will return the count per unique name
27
#UnifiedDataAnalytics #SparkAISummit
Projections
• UNWIND
UNWIND [‘a’, ‘b’, ‘c’] AS list
• WITH
– Behaves similar to RETURN
– Allows projection of values into new variables
– Controls scoping of variables
MATCH (n1)-[r1]->(m1)
WITH n1, collect(r1) AS r // r1, m1 not visible after this
RETURN n1, r
list
‘a’
‘b’
‘c’
#UnifiedDataAnalytics #SparkAISummit
Expressions
• Arithmetic (+, -, *, /, %)
• Logical (AND, OR, NOT)
• Comparison (<, <=, =, <>, >=, >)
• Functions
– Math functions (sin(), cos(), asin(), ceil(), floor())
– Conversion (toInteger(), toFloat(), toString())
– String functions
– Date and Time functions
– Containers (Nodes, Relationships, Lists, Maps)
– …
#UnifiedDataAnalytics #SparkAISummit
Cypher in Spark 3.0
#UnifiedDataAnalytics #SparkAISummit
In the previous session...
• Property Graph is a growing data model
• Spark Graph will bring Property Graphs
and Cypher to Spark 3.0
• Cypher is "SQL for graphs"
– Based on pattern matching
31
#UnifiedDataAnalytics #SparkAISummit
Now that you know Cypher...
val graph: PropertyGraph = …
graph.cypher(
"""
|MATCH (u:User)-[:REVIEWS]->(b:Business)
|WHERE u.name = 'Alice'
|RETURN u.name, b.name
""".stripMargin
).df.show
32
#UnifiedDataAnalytics #SparkAISummit
So, what happens in that call?
33
#UnifiedDataAnalytics #SparkAISummit
● Distributed executionSpark Core
Spark SQL ● Rule-based query optimization
Query Processing
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
34
openCypher Frontend
● Shared with Neo4j database system
● Parsing, Rewriting, Normalization
● Semantic Analysis (Scoping, Typing, etc.)
Okapi + Spark Cypher ● Schema and Type handling
● Query translation to DataFrame operations
#UnifiedDataAnalytics #SparkAISummit
Query Translation
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
Logical view
Physical view (DataFrame operations)
NodeTable(Business)
RelTable(REVIEWS)
NodeTable(User)
Result
35
#UnifiedDataAnalytics #SparkAISummit
Spark Cypher Architecture
36
● Conversion of expressions
● Typing of expressions
● Translation into Logical Operators
● Basic Logical Optimization
● Column layout computation for intermediate results
● Translation into Relational Operations
openCypher Frontend
Okapi + Spark Cypher
Spark SQL
Spark Core
Intermediate Language
Relational Planning
Logical Planning
● Translation of Relational Operations into DataFrame
transformations
● Expression Conversion to Spark SQL Columns
Spark Cypher
#UnifiedDataAnalytics #SparkAISummit
Query(None,
SingleQuery(List(
Match(false,
Pattern(List(
EveryPath(
RelationshipChain(
NodePattern(Some(Variable(u)),List(),None,None),
RelationshipPattern(Some(Variable(UNNAMED18)),List(RelTypeName(REVIEWS)),None,None,OUTGOING,None,false),
NodePattern(Some(Variable(b)),List(),None,None))))),List(),
Some(Where(
Ands(
Set(HasLabels(Variable(u),List(LabelName(User))),
HasLabels(Variable(b),List(LabelName(Business))),
Equals(Property(Variable(u),PropertyKeyName(name)),Parameter( AUTOSTRING0,String))))))),
With(false,ReturnItems(false,List(
AliasedReturnItem(Property(Variable(u),PropertyKeyName(name)),Variable(n.name)),
AliasedReturnItem(Property(Variable(b),PropertyKeyName(name)),Variable(b.name)))),None,None,None,None),
Return(false,ReturnItems(false,List(
AliasedReturnItem(Variable(u.name),Variable(u.name)),
AliasedReturnItem(Variable(b.name),Variable(b.name)))),None,None,None,Set()))))
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
37
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Logical Planning
Spark Cypher
#UnifiedDataAnalytics #SparkAISummit
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
38
╙──TableResultBlock(OrderedFields(List(u.name :: STRING, b.name :: STRING)), ...)
╙──ProjectBlock(Fields(Map(u.name :: STRING -> u.name :: STRING, b.name :: STRING -> b.name :: STRING)), Set(), ...)
╙──ProjectBlock(Fields(Map(u.name :: STRING -> u.name :: STRING, b.name :: STRING -> b.name :: STRING)), Set(), ...)
╙──MatchBlock(Pattern(
Set(u :: NODE, b :: NODE, UNNAMED18 :: RELATIONSHIP(:REVIEWS)),
Map( UNNAMED18 :: RELATIONSHIP(:REVIEWS) -> DirectedRelationship(Endpoints(u :: NODE, b :: NODE))),
Set(u:User :: BOOLEAN, b:Business :: BOOLEAN, u.name :: STRING = "Alice" :: STRING)
))
╙──SourceBlock(IRCatalogGraph(session.tmp#1)
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Logical Planning
Spark Cypher
• Converting AST patterns into okapi patterns
• Converting AST expressions into okapi expressions
• Typing expressions
#UnifiedDataAnalytics #SparkAISummit
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE n.name = 'Alice'
RETURN u.name, b.name
Select(List(u.name :: STRING, b.name :: STRING), ...)
╙─Project((b.name :: STRING,Some(b.name :: STRING)), ...)
╙─Project((u.name :: STRING,Some(u.name :: STRING)), ...)
╙─Filter(u.name :: STRING = $ AUTOSTRING0 :: STRING, ...)
╙─Project((u.name :: STRING,None), ...)
╙─Filter(b:Business :: BOOLEAN, ...)
╙─Filter(u:User :: BOOLEAN, ...)
╙─Expand(u :: NODE, UNNAMED18 :: RELATIONSHIP(:REVIEWS), b :: NODE, Directed, ...)
╟─NodeScan(u :: NODE, ...)
║ ╙─Start(LogicalCatalogGraph(session.tmp#1), ...)
╙─NodeScan(b :: NODE , ...)
╙─Start(LogicalCatalogGraph(session.tmp#1), ...)
Convert Intermediate Language Blocks into Logical Query Operators
39
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Logical Planning
Spark Cypher
#UnifiedDataAnalytics #SparkAISummit
Select(List(u.name :: STRING, b.name :: STRING), ...)
╙─Project((b.name :: STRING,Some(b.name :: STRING)), ...)
╙─Project((u.name :: STRING,Some(u.name :: STRING)), ...)
╙─Filter(u.name :: STRING = $ AUTOSTRING0 :: STRING, ...)
╙─Project((u.name :: STRING,None), ...)
╙─Expand(u :: NODE, UNNAMED18 :: RELATIONSHIP(:REVIEWS), b :: NODE, Directed, ...)
╟─NodeScan(u :: NODE(:User), ...)
║ ╙─Start(LogicalCatalogGraph(session.tmp#1), ...)
╙─NodeScan(b :: NODE(:Business), ...)
╙─Start(LogicalCatalogGraph(session.tmp#1), ...)
40
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Logical Planning
Spark Cypher
Apply basic optimizations to a Logical Query plan (e.g. label pushdown)
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
#UnifiedDataAnalytics #SparkAISummit
MATCH (u:User)-[:REVIEWS]->(b:Business)
WHERE u.name = 'Alice'
RETURN u.name, b.name
Select(u.name :: STRING, b.name :: STRING), RecordHeader with 2 entries)
╙─Alias(b.name :: STRING AS b.name :: STRING RecordHeader with 15 entries)
╙─Alias(u.name :: STRING AS u.name :: STRING, RecordHeader with 14 entries)
╙─Filter(u.name :: STRING = "Alice", RecordHeader with 13 entries)
╙─Join((target(UNNAMED18 :: RELATIONSHIP(:REVIEWS)) -> b :: NODE)), RecordHeader with 13 entries, InnerJoin)
╟─Join((u :: NODE -> source(UNNAMED18 :: RELATIONSHIP(:REVIEWS))), RecordHeader with 9 entries, InnerJoin)
║ ╟─NodeScan(u :: NODE(:User), RecordHeader 4 entries)
║ ║ ╙─Start(Some(CAPSRecords.unit), session.tmp#1)
║ ╙─RelationshipScan(UNNAMED18 :: RELATIONSHIP(:REVIEWS), RecordHeader with 5 entries)
║ ╙─Start(None)
╙─NodeScan(b :: NODE(:Business), RecordHeader with 4 entries)
╙─Start(Some(CAPSRecords.unit))
Translation of graph operations into relational operations
41
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Logical Planning
Relational Planning
Spark Cypher
#UnifiedDataAnalytics #SparkAISummit
● Describes the output table of a relational operator
● Maps query expressions (e.g. ‘n.name’ or ‘n:User’) to DataFrame / Table columns
● Used to access columns when evaluating expression during physical execution
● Supports relational operations to reflect data changes (e.g.
header.join(otherHeader))
42
#UnifiedDataAnalytics #SparkAISummit
Expression Column Name
NodeVar(n) :: CTNODE(:User) n
HasLabel(n, :User) :: CTBOOLEAN ____n:User
Property(n.name) :: CTSTRING ____n_dot_nameSTRING
43
Select(b, name)
╙─Project(b.name as name)
╙─Project(n as b)
╙─NodeScan(n:User)
#UnifiedDataAnalytics #SparkAISummit
Expression Column Name
NodeVar(n) :: CTNODE(:User) n
HasLabel(n, :User) :: CTBOOLEAN ____n:User
Property(n.name) :: CTSTRING ____n_dot_nameSTRING
NodeVar(b) :: CTNODE(:User) n
HasLabel(b, :User) :: CTBOOLEAN ____n:User
Property(b.name) :: CTSTRING ____n_dot_nameSTRING
44
Select(b, name)
╙─Project(b.name as name)
╙─Project(n as b)
╙─NodeScan(n:User)
#UnifiedDataAnalytics #SparkAISummit
Expression Column Name
NodeVar(n) :: CTNODE(:User) n
HasLabel(n, :User) :: CTBOOLEAN ____n:User
Property(n.name) :: CTSTRING ____n_dot_nameSTRING
NodeVar(b) :: CTNODE(:User) n
HasLabel(b, :User) :: CTBOOLEAN ____n:User
Property(b.name) :: CTSTRING ____n_dot_nameSTRING
SimpleVar(name) :: CTSTRING ____n_dot_nameSTRING
45
Select(b, name)
╙─Project(b.name as name)
╙─Project(n as b)
╙─NodeScan(n:User)
#UnifiedDataAnalytics #SparkAISummit
Expression Column Name
NodeVar(b) :: CTNODE(:User) n
HasLabel(b, :User) :: CTBOOLEAN ____n:User
Property(b.name) :: CTSTRING ____n_dot_nameSTRING
SimpleVar(name) :: CTSTRING ____n_dot_nameSTRING
46
Select(b, name)
╙─Project(b.name as name)
╙─Project(n as b)
╙─NodeScan(n:User)
#UnifiedDataAnalytics #SparkAISummit
Abstracts relational operators over the relational backends table
Converts OKAPI expressions into backend specific expressions
trait Table[E] {
def header: RecordHeader
def select(expr: String, exprs: String*): Table[E]
def filter(expr: Expr): Table[E]
def distinct: Table[E]
def order(by: SortItem[Expr]*): Table[E]
def group(by: Set[Expr], aggregations: Set[Aggregation]): Table[E]
def join(other: Table[E], joinExprs: Set[(String, String)], joinType: JoinType): Table[E]
def unionAll(other: Table[E]): Table[E]
def add(expr: Expr): Table[E]
def addInto(expr: Expr, into: String): Table[E]
def drop(columns: String*): Table[E]
def rename(oldColumn: Expr, newColumn: String): Table[E]
}
47
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Spark Cypher
Logical Planning
#UnifiedDataAnalytics #SparkAISummit
class DataFrameTable(df: DataFrame) extends RelationalTable[DataFrameTable] {
// ...
override def filter(expr: Expr): DataFrameTable = {
new DataFrameTable(df.filter(convertExpression(expr, header)))
}
override def join(other: DataFrameTable, joinExprs: Set[(String, String)], joinType: JoinType): DataFrameTable = {
val joinExpr = joinExprs.map { case (l,r) => df.col(l) === other.df(r) }.reduce(_ && _)
new DataFrameTable(df.join(other.df, joinExpr, joinType))
}
// ...
}
openCypher Frontend
Okapi + Spark
Cypher
Spark SQL
Spark Core
Intermediate
Language
Relational Planning
Logical Planning
Spark Cypher
48
#UnifiedDataAnalytics #SparkAISummit
Future improvement ideas
• Common table expressions
• Worst-case optimal joins
• Graph-aware optimisations in Catalyst
• Graph-aware data partitioning
49
#UnifiedDataAnalytics #SparkAISummit
Spark Cypher in Action
#UnifiedDataAnalytics #SparkAISummit
Extending Spark
Graph with Neo4j
Morpheus
#UnifiedDataAnalytics #SparkAISummit
Neo4j Morpheus
• Incubator for SparkCypher
• Extends Cypher language with
multiple-graph features
• Graph catalog
• Property graph data sources for
integration with Neo4j, SQL DBMS, etc.
https://github.com/opencypher/morpheus
52
#UnifiedDataAnalytics #SparkAISummit
Get Involved!
• SPIP was accepted in February
• Current status:
– Core development is poc-complete
– PRs in review
• We are not Spark committers
– Help us review / merge
– Contribute to documentation, Python API
53
DON’T FORGET TO RATE
AND REVIEW THE SESSIONS
SEARCH SPARK + AI SUMMIT
Ad

Recommended

Near Real-Time Data Warehousing with Apache Spark and Delta Lake
Near Real-Time Data Warehousing with Apache Spark and Delta Lake
Databricks
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
Databricks
 
Massive-Scale Entity Resolution Using the Power of Apache Spark and Graph
Massive-Scale Entity Resolution Using the Power of Apache Spark and Graph
Databricks
 
Observability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineage
Databricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
Keeping Identity Graphs In Sync With Apache Spark
Keeping Identity Graphs In Sync With Apache Spark
Databricks
 
Building Identity Graph at Scale for Programmatic Media Buying Using Apache S...
Building Identity Graph at Scale for Programmatic Media Buying Using Apache S...
Databricks
 
Programming in Spark using PySpark
Programming in Spark using PySpark
Mostafa
 
Parallelization of Structured Streaming Jobs Using Delta Lake
Parallelization of Structured Streaming Jobs Using Delta Lake
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Building Data Pipelines with Spark and StreamSets
Building Data Pipelines with Spark and StreamSets
Pat Patterson
 
A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
Databricks
 
Hyperspace for Delta Lake
Hyperspace for Delta Lake
Databricks
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
Databricks
 
Building Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft Azure
Dmitry Anoshin
 
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine Learning
Databricks
 
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
Edureka!
 
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Andrew Lamb
 
Building Advanced Analytics Pipelines with Azure Databricks
Building Advanced Analytics Pipelines with Azure Databricks
Lace Lofranco
 
Modularized ETL Writing with Apache Spark
Modularized ETL Writing with Apache Spark
Databricks
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
Databricks
 
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
Edureka!
 
Azure data factory
Azure data factory
BizTalk360
 
Strata sf - Amundsen presentation
Strata sf - Amundsen presentation
Tao Feng
 
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Databricks
 
DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Introduction to Azure Databricks
Introduction to Azure Databricks
James Serra
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Databricks
 
Cypher and apache spark multiple graphs and more in open cypher
Cypher and apache spark multiple graphs and more in open cypher
Neo4j
 

More Related Content

What's hot (20)

Parallelization of Structured Streaming Jobs Using Delta Lake
Parallelization of Structured Streaming Jobs Using Delta Lake
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Building Data Pipelines with Spark and StreamSets
Building Data Pipelines with Spark and StreamSets
Pat Patterson
 
A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
Databricks
 
Hyperspace for Delta Lake
Hyperspace for Delta Lake
Databricks
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
Databricks
 
Building Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft Azure
Dmitry Anoshin
 
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine Learning
Databricks
 
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
Edureka!
 
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Andrew Lamb
 
Building Advanced Analytics Pipelines with Azure Databricks
Building Advanced Analytics Pipelines with Azure Databricks
Lace Lofranco
 
Modularized ETL Writing with Apache Spark
Modularized ETL Writing with Apache Spark
Databricks
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
Databricks
 
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
Edureka!
 
Azure data factory
Azure data factory
BizTalk360
 
Strata sf - Amundsen presentation
Strata sf - Amundsen presentation
Tao Feng
 
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Databricks
 
DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Introduction to Azure Databricks
Introduction to Azure Databricks
James Serra
 
Parallelization of Structured Streaming Jobs Using Delta Lake
Parallelization of Structured Streaming Jobs Using Delta Lake
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Building Data Pipelines with Spark and StreamSets
Building Data Pipelines with Spark and StreamSets
Pat Patterson
 
A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
Databricks
 
Hyperspace for Delta Lake
Hyperspace for Delta Lake
Databricks
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
Databricks
 
Building Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft Azure
Dmitry Anoshin
 
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
Neo4j
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine Learning
Databricks
 
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
Edureka!
 
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Andrew Lamb
 
Building Advanced Analytics Pipelines with Azure Databricks
Building Advanced Analytics Pipelines with Azure Databricks
Lace Lofranco
 
Modularized ETL Writing with Apache Spark
Modularized ETL Writing with Apache Spark
Databricks
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
Databricks
 
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
PySpark Training | PySpark Tutorial for Beginners | Apache Spark with Python ...
Edureka!
 
Azure data factory
Azure data factory
BizTalk360
 
Strata sf - Amundsen presentation
Strata sf - Amundsen presentation
Tao Feng
 
Building Data Quality Audit Framework using Delta Lake at Cerner
Building Data Quality Audit Framework using Delta Lake at Cerner
Databricks
 
DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Introduction to Azure Databricks
Introduction to Azure Databricks
James Serra
 

Similar to Graph Features in Spark 3.0: Integrating Graph Querying and Algorithms in Spark Graph (20)

Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Databricks
 
Cypher and apache spark multiple graphs and more in open cypher
Cypher and apache spark multiple graphs and more in open cypher
Neo4j
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Databricks
 
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Databricks
 
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Martin Junghanns
 
Morpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache Spark
Henning Kropp
 
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Databricks
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and Weld
Databricks
 
Tactical Data Science Tips: Python and Spark Together
Tactical Data Science Tips: Python and Spark Together
Databricks
 
DASK and Apache Spark
DASK and Apache Spark
Databricks
 
2018 data warehouse features in spark
2018 data warehouse features in spark
Chester Chen
 
Big data analysis using spark r published
Big data analysis using spark r published
Dipendra Kusi
 
Graph database in sv meetup
Graph database in sv meetup
Joshua Bae
 
GraphDatabase.pptx
GraphDatabase.pptx
JeyaVarthini1
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
jexp
 
Pazu Netflix Video Downloader Download
Pazu Netflix Video Downloader Download
mohsinraza05mb
 
Atlantis Word Processor 4.4.5.1 Free Download
Atlantis Word Processor 4.4.5.1 Free Download
blouch120kp
 
Adobe Substance 3D Designer 14.1.2.8986
Adobe Substance 3D Designer 14.1.2.8986
blouch133kp
 
Pazu Netflix Video Downloader 1.7.3 Crack Free
Pazu Netflix Video Downloader 1.7.3 Crack Free
alihamzakpa071
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Databricks
 
Cypher and apache spark multiple graphs and more in open cypher
Cypher and apache spark multiple graphs and more in open cypher
Neo4j
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Databricks
 
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Extending Spark Graph for the Enterprise with Morpheus and Neo4j
Databricks
 
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Martin Junghanns
 
Morpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache Spark
Henning Kropp
 
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Data-Driven Transformation: Leveraging Big Data at Showtime with Apache Spark
Databricks
 
Composable Parallel Processing in Apache Spark and Weld
Composable Parallel Processing in Apache Spark and Weld
Databricks
 
Tactical Data Science Tips: Python and Spark Together
Tactical Data Science Tips: Python and Spark Together
Databricks
 
DASK and Apache Spark
DASK and Apache Spark
Databricks
 
2018 data warehouse features in spark
2018 data warehouse features in spark
Chester Chen
 
Big data analysis using spark r published
Big data analysis using spark r published
Dipendra Kusi
 
Graph database in sv meetup
Graph database in sv meetup
Joshua Bae
 
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
New Features in Neo4j 3.4 / 3.3 - Graph Algorithms, Spatial, Date-Time & Visu...
jexp
 
Pazu Netflix Video Downloader Download
Pazu Netflix Video Downloader Download
mohsinraza05mb
 
Atlantis Word Processor 4.4.5.1 Free Download
Atlantis Word Processor 4.4.5.1 Free Download
blouch120kp
 
Adobe Substance 3D Designer 14.1.2.8986
Adobe Substance 3D Designer 14.1.2.8986
blouch133kp
 
Pazu Netflix Video Downloader 1.7.3 Crack Free
Pazu Netflix Video Downloader 1.7.3 Crack Free
alihamzakpa071
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Ad

More from Databricks (20)

Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
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 Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
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 Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
Machine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack Detection
Databricks
 
Jeeves Grows Up: An AI Chatbot for Performance and Quality
Jeeves Grows Up: An AI Chatbot for Performance and Quality
Databricks
 
Intuitive & Scalable Hyperparameter Tuning with Apache Spark + Fugue
Intuitive & Scalable Hyperparameter Tuning with Apache Spark + Fugue
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
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 Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
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 Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
Machine Learning CI/CD for Email Attack Detection
Machine Learning CI/CD for Email Attack Detection
Databricks
 
Jeeves Grows Up: An AI Chatbot for Performance and Quality
Jeeves Grows Up: An AI Chatbot for Performance and Quality
Databricks
 
Intuitive & Scalable Hyperparameter Tuning with Apache Spark + Fugue
Intuitive & Scalable Hyperparameter Tuning with Apache Spark + Fugue
Databricks
 
Ad

Recently uploaded (20)

METHODS OF DATA COLLECTION (Research methodology)
METHODS OF DATA COLLECTION (Research methodology)
anwesha248
 
Module 1Integrity_and_Ethics_PPT-2025.pptx
Module 1Integrity_and_Ethics_PPT-2025.pptx
Karikalcholan Mayavan
 
SAP_S4HANA_PPM_IT_Corporate_Services_Presentation.pptx
SAP_S4HANA_PPM_IT_Corporate_Services_Presentation.pptx
vemulavenu484
 
apidays New York 2025 - Why I Built Another Carbon Measurement Tool for LLMs ...
apidays New York 2025 - Why I Built Another Carbon Measurement Tool for LLMs ...
apidays
 
FME Beyond Data Processing: Creating a Dartboard Accuracy App
FME Beyond Data Processing: Creating a Dartboard Accuracy App
jacoba18
 
Media_Literacy_Index_of_Media_Sector_Employees.pdf
Media_Literacy_Index_of_Media_Sector_Employees.pdf
OlhaTatokhina1
 
Power BI API Connectors - Best Practices for Scalable Data Connections
Power BI API Connectors - Best Practices for Scalable Data Connections
Vidicorp Ltd
 
apidays Singapore 2025 - What exactly are AI Agents by Aki Ranin (Earthshots ...
apidays Singapore 2025 - What exactly are AI Agents by Aki Ranin (Earthshots ...
apidays
 
MICROSOFT POWERPOINT AND USES(BEST)..pdf
MICROSOFT POWERPOINT AND USES(BEST)..pdf
bathyates
 
apidays New York 2025 - API Security and Observability at Scale in Kubernetes...
apidays New York 2025 - API Security and Observability at Scale in Kubernetes...
apidays
 
THE FRIEDMAN TEST ( Biostatics B. Pharm)
THE FRIEDMAN TEST ( Biostatics B. Pharm)
JishuHaldar
 
apidays New York 2025 - Unifying OpenAPI & AsyncAPI by Naresh Jain & Hari Kri...
apidays New York 2025 - Unifying OpenAPI & AsyncAPI by Naresh Jain & Hari Kri...
apidays
 
apidays Singapore 2025 - Enhancing Developer Productivity with UX (Government...
apidays Singapore 2025 - Enhancing Developer Productivity with UX (Government...
apidays
 
Hypothesis Testing Training Material.pdf
Hypothesis Testing Training Material.pdf
AbdirahmanAli51
 
Data-Driven-Operational--Excellence.pptx
Data-Driven-Operational--Excellence.pptx
NiwanthaThilanjanaGa
 
最新版美国威斯康星大学拉克罗斯分校毕业证(UW–L毕业证书)原版定制
最新版美国威斯康星大学拉克罗斯分校毕业证(UW–L毕业证书)原版定制
Taqyea
 
unit- 5 Biostatistics and Research Methodology.pdf
unit- 5 Biostatistics and Research Methodology.pdf
KRUTIKA CHANNE
 
SQL-Demystified-A-Beginners-Guide-to-Database-Mastery.pptx
SQL-Demystified-A-Beginners-Guide-to-Database-Mastery.pptx
bhavaniteacher99
 
Pause Travail 22 Hostiou Girard 12 juin 2025.pdf
Pause Travail 22 Hostiou Girard 12 juin 2025.pdf
Institut de l'Elevage - Idele
 
apidays New York 2025 - The Challenge is Not the Pattern, But the Best Integr...
apidays New York 2025 - The Challenge is Not the Pattern, But the Best Integr...
apidays
 
METHODS OF DATA COLLECTION (Research methodology)
METHODS OF DATA COLLECTION (Research methodology)
anwesha248
 
Module 1Integrity_and_Ethics_PPT-2025.pptx
Module 1Integrity_and_Ethics_PPT-2025.pptx
Karikalcholan Mayavan
 
SAP_S4HANA_PPM_IT_Corporate_Services_Presentation.pptx
SAP_S4HANA_PPM_IT_Corporate_Services_Presentation.pptx
vemulavenu484
 
apidays New York 2025 - Why I Built Another Carbon Measurement Tool for LLMs ...
apidays New York 2025 - Why I Built Another Carbon Measurement Tool for LLMs ...
apidays
 
FME Beyond Data Processing: Creating a Dartboard Accuracy App
FME Beyond Data Processing: Creating a Dartboard Accuracy App
jacoba18
 
Media_Literacy_Index_of_Media_Sector_Employees.pdf
Media_Literacy_Index_of_Media_Sector_Employees.pdf
OlhaTatokhina1
 
Power BI API Connectors - Best Practices for Scalable Data Connections
Power BI API Connectors - Best Practices for Scalable Data Connections
Vidicorp Ltd
 
apidays Singapore 2025 - What exactly are AI Agents by Aki Ranin (Earthshots ...
apidays Singapore 2025 - What exactly are AI Agents by Aki Ranin (Earthshots ...
apidays
 
MICROSOFT POWERPOINT AND USES(BEST)..pdf
MICROSOFT POWERPOINT AND USES(BEST)..pdf
bathyates
 
apidays New York 2025 - API Security and Observability at Scale in Kubernetes...
apidays New York 2025 - API Security and Observability at Scale in Kubernetes...
apidays
 
THE FRIEDMAN TEST ( Biostatics B. Pharm)
THE FRIEDMAN TEST ( Biostatics B. Pharm)
JishuHaldar
 
apidays New York 2025 - Unifying OpenAPI & AsyncAPI by Naresh Jain & Hari Kri...
apidays New York 2025 - Unifying OpenAPI & AsyncAPI by Naresh Jain & Hari Kri...
apidays
 
apidays Singapore 2025 - Enhancing Developer Productivity with UX (Government...
apidays Singapore 2025 - Enhancing Developer Productivity with UX (Government...
apidays
 
Hypothesis Testing Training Material.pdf
Hypothesis Testing Training Material.pdf
AbdirahmanAli51
 
Data-Driven-Operational--Excellence.pptx
Data-Driven-Operational--Excellence.pptx
NiwanthaThilanjanaGa
 
最新版美国威斯康星大学拉克罗斯分校毕业证(UW–L毕业证书)原版定制
最新版美国威斯康星大学拉克罗斯分校毕业证(UW–L毕业证书)原版定制
Taqyea
 
unit- 5 Biostatistics and Research Methodology.pdf
unit- 5 Biostatistics and Research Methodology.pdf
KRUTIKA CHANNE
 
SQL-Demystified-A-Beginners-Guide-to-Database-Mastery.pptx
SQL-Demystified-A-Beginners-Guide-to-Database-Mastery.pptx
bhavaniteacher99
 
apidays New York 2025 - The Challenge is Not the Pattern, But the Best Integr...
apidays New York 2025 - The Challenge is Not the Pattern, But the Best Integr...
apidays
 

Graph Features in Spark 3.0: Integrating Graph Querying and Algorithms in Spark Graph