GraphFrames的基本使用

在本节中,我们将使用Spark GraphFrames来建立图模型并进行研究。图的顶点和边被存储为DataFrame,并且支持基于Spark SQL和DataFrame的查询对它们进行操作。由于DataFrame可以支持各种数据源,因此可以从关系表、文件(JSON、Parquet、Avro和CSV)等等读取输入顶点和边信息。

顶点DataFrame必须包含一个叫做id的列,它为每个顶点指定唯一的ID。类似地,边DataFrame必须包含名为src(源顶点的ID)和dst(目标顶点的ID)的两列。顶点DataFrame和边DataFrame都可以包含额外的属性列。

GraphFrames公开了一个简洁的语言集成API,它统一了图分析和关系查询,集成了图算法、模式匹配和查询。机器学习代码、外部数据源和UDF可以与GraphFrames集成来构建更复杂的应用程序。

1. 添加GraphFrames依赖

因为GraphFrames并不存在于Spark的发行包中,因此需要首先添加其依赖包。当前GraphFrames的最新版本是0.8.1。请注意指定兼容的Spark版本,目前直接支持的是Spark 3.0,对应的Scala版本为2.12。根据开发方式的不同,使用不同的依赖添加方式,说明如下:

(1) 如果是通过IDE进行开发(如IntelliJ IDEA),则可以在Maven项目的pom.xml配置文件中添加如下的依赖:

<dependency>
    <groupId>graphframes</groupId>
    <artifactId>graphframes</artifactId>
    <version>0.8.1-spark3.0-s_2.1 ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《Flink原理深入与编程实战》