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

More Related Content

PDF
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
PDF
Making Apache Spark Better with Delta Lake
PPTX
How to understand and analyze Apache Hive query execution plan for performanc...
PPTX
Slide #1:Introduction to Apache Storm
PDF
Adaptive Query Execution: Speeding Up Spark SQL at Runtime
PDF
From Zero to Hero with Kafka Connect
PDF
RAC Troubleshooting and Diagnosability Sangam2016
PPTX
Azure Synapse Analytics Overview (r2)
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Making Apache Spark Better with Delta Lake
How to understand and analyze Apache Hive query execution plan for performanc...
Slide #1:Introduction to Apache Storm
Adaptive Query Execution: Speeding Up Spark SQL at Runtime
From Zero to Hero with Kafka Connect
RAC Troubleshooting and Diagnosability Sangam2016
Azure Synapse Analytics Overview (r2)

What's hot (20)

PPTX
Apache HBaseā„¢
PDF
Apache spark
PDF
Data Science Across Data Sources with Apache Arrow
PPTX
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
PDF
Hive Bucketing in Apache Spark with Tejas Patil
PDF
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
PDF
AV/DF Advanced Security Option
PDF
Oracle data guard for beginners
PDF
Data Engineer's Lunch #83: Strategies for Migration to Apache Iceberg
PDF
Fine Tuning and Enhancing Performance of Apache Spark Jobs
PPTX
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
PDF
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
PDF
Introduction to Apache Flink - Fast and reliable big data processing
PDF
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
PDF
Azure Data Factory V2; The Data Flows
PDF
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
PDF
Deep Dive: Memory Management in Apache Spark
PDF
Exactly-Once Semantics Revisited: Distributed Transactions across Flink and K...
PDF
Building an open data platform with apache iceberg
ODP
Partitioning
Apache HBaseā„¢
Apache spark
Data Science Across Data Sources with Apache Arrow
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
Hive Bucketing in Apache Spark with Tejas Patil
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
AV/DF Advanced Security Option
Oracle data guard for beginners
Data Engineer's Lunch #83: Strategies for Migration to Apache Iceberg
Fine Tuning and Enhancing Performance of Apache Spark Jobs
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
Introduction to Apache Flink - Fast and reliable big data processing
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
Azure Data Factory V2; The Data Flows
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Deep Dive: Memory Management in Apache Spark
Exactly-Once Semantics Revisited: Distributed Transactions across Flink and K...
Building an open data platform with apache iceberg
Partitioning
Ad

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

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

More from Databricks (20)

PPTX
DW Migration Webinar-March 2022.pptx
PPTX
Data Lakehouse Symposium | Day 1 | Part 1
PPT
Data Lakehouse Symposium | Day 1 | Part 2
PPTX
Data Lakehouse Symposium | Day 2
PPTX
Data Lakehouse Symposium | Day 4
PDF
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
PDF
Democratizing Data Quality Through a Centralized Platform
PDF
Learn to Use Databricks for Data Science
PDF
Why APM Is Not the Same As ML Monitoring
PDF
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
PDF
Stage Level Scheduling Improving Big Data and AI Integration
PDF
Simplify Data Conversion from Spark to TensorFlow and PyTorch
PDF
Scaling your Data Pipelines with Apache Spark on Kubernetes
PDF
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
PDF
Sawtooth Windows for Feature Aggregations
PDF
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
PDF
Re-imagine Data Monitoring with whylogs and Spark
PDF
Raven: End-to-end Optimization of ML Prediction Queries
PDF
Processing Large Datasets for ADAS Applications using Apache Spark
PDF
Massive Data Processing in Adobe Using Delta Lake
DW Migration Webinar-March 2022.pptx
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 4
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Democratizing Data Quality Through a Centralized Platform
Learn to Use Databricks for Data Science
Why APM Is Not the Same As ML Monitoring
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Stage Level Scheduling Improving Big Data and AI Integration
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Sawtooth Windows for Feature Aggregations
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Re-imagine Data Monitoring with whylogs and Spark
Raven: End-to-end Optimization of ML Prediction Queries
Processing Large Datasets for ADAS Applications using Apache Spark
Massive Data Processing in Adobe Using Delta Lake

Recently uploaded (20)

PPTX
climate analysis of Dhaka ,Banglades.pptx
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PDF
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
PPTX
Business Ppt On Nestle.pptx huunnnhhgfvu
PPTX
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
IB Computer Science - Internal Assessment.pptx
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PDF
Business Analytics and business intelligence.pdf
PDF
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
PPTX
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PPTX
Computer network topology notes for revision
PDF
ā€œGetting Started with Data Analytics Using R – Concepts, Tools & Case Studiesā€
PPTX
Qualitative Qantitative and Mixed Methods.pptx
PPTX
Business Acumen Training GuidePresentation.pptx
PDF
Lecture1 pattern recognition............
PDF
Clinical guidelines as a resource for EBP(1).pdf
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
climate analysis of Dhaka ,Banglades.pptx
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
Business Ppt On Nestle.pptx huunnnhhgfvu
ALIMENTARY AND BILIARY CONDITIONS 3-1.pptx
Miokarditis (Inflamasi pada Otot Jantung)
IB Computer Science - Internal Assessment.pptx
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
Business Analytics and business intelligence.pdf
BF and FI - Blockchain, fintech and Financial Innovation Lesson 2.pdf
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
Data_Analytics_and_PowerBI_Presentation.pptx
Computer network topology notes for revision
ā€œGetting Started with Data Analytics Using R – Concepts, Tools & Case Studiesā€
Qualitative Qantitative and Mixed Methods.pptx
Business Acumen Training GuidePresentation.pptx
Lecture1 pattern recognition............
Clinical guidelines as a resource for EBP(1).pdf
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
oil_refinery_comprehensive_20250804084928 (1).pptx

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