如何用AI技术降噪? QCon 广州“音视频架构实践”专场给你答案! 了解详情
写点什么

基于 Spark DataFrame 的图数据库 GraphFrame:用 Spark SQL 查询 Graph

  • 2016 年 3 月 09 日
  • 本文字数:824 字

    阅读完需:约 3 分钟

GraphFrame 发布

GraphFrame 基于 Spark SQL 的 DataFrame,继承了 DataFrame 扩展性和高性能。并且可以提供支持 Scala、Java 和 Python 等语言的统一 API。

什么是 GraphFrame

GraphFrame 是类似于 Spark 的 GraphX 库,支持图处理。但 GraphFrame 建立在 Spark DataFrame 之上,具有以下重要的优势:
支持 Scala ,Java 和 Python API:GraphFrame 提供统一的三种编程语言 APIs,而 GraphX 的所有算法支持 Python 和 Java
方便、简单的图查询:GraphFrame 允许用户使用 Spark SQL 和 DataFrame 的 API 查询
支持导出和导入图:GraphFrame 支持 DataFrame 数据源,使得可以读取和写入多种格式的图,比如,Parquet、JSON 和 CSV 格式。

社交网络的列子

社交网络中的人是以关系来互相连接的,我们能把这个网络看成一幅图,其中人看成顶点,人与人之间的关系看作是边,如图 1 所示:

图 1
在社交网络上,每个人可能由年龄和名字,每个人之间的关系也有不同类型。如表 1 和表 2

表 1

表 2

图查询示列

由于 GraphFrame 的顶点和边存储为 DataFrame,可以用 DataFrame 或 SQL 来很简单的查询图。
比如,查询有多少年龄大于 35 的人?

g.vertices.filtr(“age > 35”)比如,有多少人至少被 2 个人关注?

g.inDegrees.filter(“inDegree >=2”)GraphFrames 支持所有 GraphX 的算法,包括 PageRank、Shortest Paths、Connected components、Strongly Connected components、Triangle count 和 Label Propagation Algorithm(LPA)

GraphFrame 和 GraphX 之间可以无损的来回转换。

复制代码
val gx: Graph[Row, Row] = g.toGraphX()
val g2: GraphFrame = GraphFrame.fromGraphX(gx)

更相信的 GraphFrame API 文档见这里


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016 年 3 月 09 日 18:0012719
用户头像

发布了 43 篇内容, 共 25.9 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

死磕Spring之AOP篇 - Spring AOP常见面试题,java高级开发工程师简历

Java 程序员 后端

毕业两年面试阿里成功,月薪36k,分享一下我的经历,锁机制(本地锁+分布式锁)超全分析

Java 程序员 后端

深入解析java虚拟机:垃圾回收,最大并发标记清除垃圾回收器

Java 程序员 后端

源码解析BeanUtils,Java开发还不会这些

Java 程序员 后端

沉寂唯品会3年,毅然辞职冲刺阿里,我是怎么备战金三银四的

Java 程序员 后端

深入浅出!全面剖析Java反射-Reflection,java项目开发实战入门电子书百度云

Java 程序员 后端

深入理解静态代理与JDK动态代理,java编程技术基础周绍斌

Java 程序员 后端

深入理解Java虚拟机之类加载机制篇,秋招java后端面试

Java 程序员 后端

毕业三年,从小公司到大厂,先后四面阿里,沈剑架构师训练营

Java 程序员 后端

泪目!跳槽太不容易,蚂蚁金服三轮面试,linux高可用集群架构毕业设计

Java 程序员 后端

淘系,60W年薪大牛!新肝出一份,细说JVM内存模型

Java 程序员 后端

毕业就想进大厂?啃完这篇阿里大神整理的Kafka神仙文档,从此面试底气十足

Java 程序员 后端

教学改革拆除“骨鲠”,产教融合的“一鱼多吃”创新之路

脑极体

深入浅出!带你重学Java—ArrayList,mongodb的存储原理

Java 程序员 后端

元宇宙将如何影响我们的投资、就业和生活方式?

CECBC

浅析Mysql索引数据结构演变,让你一看就懂(1),意外收获字节跳动内部资料

Java 程序员 后端

涨姿势,Java中New一个对象是个怎么样的过程?,linux操作系统实用教程教师用书

Java 程序员 后端

深入P8级别JAVA底层知识:你知道阿里P8需要掌握哪些技术吗?

Java 程序员 后端

消息队列面试题及答案,大V推荐

Java 程序员 后端

深入理解Java内存模型,小白也能看得懂!,限时发布

Java 程序员 后端

源码解析 HashMap 的线程安全问题,mysql索引左前缀原理

Java 程序员 后端

欲速则不达,欲达则欲速!,mysql主从复制原理两主一从ID

Java 程序员 后端

每天一遍、阿里相见,Github爆火的spring高级源码解析免费下载

Java 程序员 后端

每日一学:这个-RabbitMQ-必会-Routing路由模式,你学会了吗

Java 程序员 后端

测试用例的设计方法及案例,java技术框架

Java 程序员 后端

消息疯狂堆积!RocketMQ出Bug了?,rabbitmq分布式事务原理

Java 程序员 后端

清华大牛纯手写2021年最新JVM调优实战手册,看完让你精通JVM调优

Java 程序员 后端

元宇宙到底是个啥?

石云升

元宇宙 10月日更

毕业两年,工作三年Java程序员的一点点体会与建议,java面试问项目流程

Java 程序员 后端

浅析Mysql索引数据结构演变,让你一看就懂,java业务场景面试题

Java 程序员 后端

「云智公开课」百度沧海·存储

「云智公开课」百度沧海·存储

基于Spark DataFrame的图数据库GraphFrame:用Spark SQL查询Graph_语言 & 开发_侠天_InfoQ精选文章