Spark、OrientDB 整合——图计算应该这么玩_orientdb快速添加百万边-程序员宅基地

技术标签: OrientDB  图计算  图数据库  Spark    

友情提示图数据库 OrientDB 安装 及 初步使用

额外的Jar包

  • OrientDB JDBC 驱动

https://orientdb.com/download-2/,单击此链接,如下图所示
这里写图片描述
下载矩形方框中的驱动。

  • spark-orientdb

https://dl.bintray.com/sbcd90/org.apache.spark/org/apache/spark/,点击此链接,下载特定版本的Jar包。参考链接

至于,如何在 IDEA 中搭建 Spark 开发环境,我觉得就没必要废话了。下面老规矩,直接上代码。

Spark DataFrame 写入 OrientDB

    val spark = SparkSession.builder().appName("SparkOrientDB").getOrCreate()
    import spark.implicits._
    import spark.sql

    // Vertex DataFrame
    spark.createDataFrame(List(
      ("a", "Alice", 34),
      ("b", "Bob", 36),
      ("c", "Charlie", 30),
      ("d", "David", 29),
      ("e", "Esther", 32),
      ("f", "Fanny", 36),
      ("g", "Gabby", 60)
    )).toDF("id", "name", "age")
      .write.format("org.apache.spark.orientdb.graphs")
      .option("dburl", "remote:localhost/graphdb")
      .option("user", "root")
      .option("password", "root")
      .option("vertextype", "Vgraphx")
      .mode("overwrite")
      .save()

    // Edge DataFrame
    spark.createDataFrame(List(
      ("a", "b", "friend"),
      ("b", "c", "follow"),
      ("c", "b", "follow"),
      ("f", "c", "follow"),
      ("e", "f", "follow"),
      ("e", "d", "friend"),
      ("d", "a", "friend"),
      ("a", "e", "friend")
    )).toDF("src", "dst", "relationship")
      .write.format("org.apache.spark.orientdb.graphs")
      .option("dburl", "remote:localhost/graphdb")
      .option("user", "root")
      .option("password", "root")
      .option("vertextype", "Vgraphx")
      .option("edgetype", "Egraphx")
      .mode("overwrite")
      .save()

单击 http://localhost:2480,查询 写入的顶点和边。如下图所示,
这里写图片描述

Spark 读取 OrientDB 返回 DataFrame

    val vertices = spark.read
      .format("org.apache.spark.orientdb.graphs")
      .option("dburl", "remote:localhost/graphdb")
      .option("user", "root")
      .option("password", "root")
      .option("vertextype", "Vgraphx")
      .load()

    val edges = spark.read
      .format("org.apache.spark.orientdb.graphs")
      .option("dburl", "remote:localhost/graphdb")
      .option("user", "root")
      .option("password", "root")
      .option("edgetype", "Egraphx")
      .load()

    val g = GraphFrame(vertices, edges)

顶点输出如下,

g.vertices.show(false)

+-------+---+---+
|name   |id |age|
+-------+---+---+
|Bob    |b  |36 |
|David  |d  |29 |
|Charlie|c  |30 |
|Esther |e  |32 |
|Fanny  |f  |36 |
|Gabby  |g  |60 |
|Alice  |a  |34 |
+-------+---+---+

边的输出如下,

g.edges.show(false)

+---+------------+---+
|dst|relationship|src|
+---+------------+---+
|c  |follow      |b  |
|b  |follow      |c  |
|f  |follow      |e  |
|a  |friend      |d  |
|c  |follow      |f  |
|d  |friend      |e  |
|b  |friend      |a  |
|e  |friend      |a  |
+---+------------+---+

友情链接1

友情链接2

友情链接3

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yitengtongweishi/article/details/81607364

智能推荐

python自动化框架pycharm_Selenium+Python+Pycharm进行自动化-程序员宅基地

文章浏览阅读749次。最近研究新的自动化测试方法,QTP已经用的比较熟练,待开发新的方法,这里做个记录和大家共勉。1、首先肯定是配置环境了,一步一步来吧,先下载需要的工具:下载一个python的环境,我这里用的Python3.4,一会我上传上来,大家可以直接下载。最好用3.4以及以上的版本,这样可以不用pip单独安装什么的,可以联网直接安装selenium了。安装完Python后可以在线进行selenium安装了,首先..._pycharm webdriver.ie

2021可信云大会-程序员宅基地

文章浏览阅读2.5k次。为了进一步促进云计算创新发展,建立云计算信任体系,规范云计算行业,促进市场发展,提升产业技术和服务水平。由中国信息通信研究院主办,中国通信标准化协会云计算标准与开源推进委员会、混合云产业推进联盟、云原生产业联盟、云服务经营自律委员会、网络风险与保险创新实验室支持的“2021可信云大会”将于2021年7月27-28日在北京国际会议中心举行。围绕行业发展趋势、落地应用、新兴技术、企业数字化上云等热门议题展开观点碰撞。此外,大会现场亦将重磅公布“可信云行业服务最佳实践”“可信云技术服务最佳实践”最终名单,同时_2021可信云大会

PHPCMS中GET标签概述、 get 标签语法、get 标签创建工具、get 调用本系统示例、get 调用其他系统示例_phpcms get 标签-程序员宅基地

文章浏览阅读8k次。一、get 标签概述 通俗来讲,get 标签是Phpcms定义的能直接调用数据库里面内容的简单化、友好化代码,她可调用本系统和外部数据,只有你对SQL有一定的了解,她就是你的绝世好剑!也就是适合熟悉SQL语句的人使用。有了她,我们打造个性化的网站,能非常方便的调用出数据库里面指定的内容。通过条件限制,我们可以调用出不同条件下的不同数据。二、get标签样式{get d_phpcms get 标签

在 Xposed 模块下优雅的调用宿主——对象篇_xposed 宿主加载模块类-程序员宅基地

文章浏览阅读396次,点赞8次,收藏8次。通过之前中我们已经知道,Xposed 模块是无法直接在项目里添加Stub包,然后直接使用宿主的类对象。所以这篇文章的想法就是怎么在这环境下能直接使用Stub包下的类对象。_xposed 宿主加载模块类

java毕业设计基于SpringBoot + Vue 的超市商超进销存收银系统-程序员宅基地

文章浏览阅读480次,点赞9次,收藏8次。本基于SpringBoot和Vue 的超市进销存系统采用Java语言来进行开发,从角色上分为管理员和员工以及用户三个角色,管理员部分功能主要包括首页,个人中心,基础数据管理,供应商信息管理,商品管理,出入库管理,收银管理,用户管理等功能;本基于SpringBoot和Vue 的超市进销存系统是根据当前我国中小型超市环境相关的内容实际情况开发的,在系统语言选择上我们使用的Java语言,数据库是小巧灵活的MySQL数据库,本系统的开发可以极大的提高超市方面的管理。关键词:超市,管理,MySQL,Java。

AutoDl服务器模型训练方法_autodl实时查看sd模型训练步数-程序员宅基地

文章浏览阅读346次。4、pip requirements.txt 用pycharm或网站jyputer训练。开实例,打开AutoPanel的公共网盘进行授权->3、网盘下载到实例 (可以不用压缩包,直接传文件)1、数据文件先传到百度网盘/阿里云盘。5、训练完的数据上传到网盘。_autodl实时查看sd模型训练步数

随便推点

GTC 2024 火线评论:DPU 重构文件存储访问_dpu分布式存储-程序员宅基地

文章浏览阅读874次,点赞11次,收藏9次。在多样化的 GPU 存储类型的利用上,不管是块存储的 NVMe 卷作为节点内的高速缓存,还是共享文件存储作为 CPU/GPU 内存的全局缓存存储,最终通过基于对象存储的数据湖来统一治理,这些存储类型的需求和定位都跟 XSKY 的产品定位和路线图高度符合。对于国内领先的分布式存储厂商来说,我们同样认为,不仅是 Nvidia BlueField 系列产品可以提供这样的方式,这样的需求应该可以在普遍的 DPU 产品中实现并被利用,有效的提高 DPU 在存储协议上的多样化支持,并带来共享文件存储的安全性所需。_dpu分布式存储

flex两列布局,左边固定(可折叠),右边自适应_实现左侧展开折叠右侧自适应-程序员宅基地

文章浏览阅读9.7k次,点赞2次,收藏8次。需求:左边导航栏固定宽200px,并且导航栏可折叠隐藏,右边自适应,填充剩余的宽度. html:<div class="body"> <div class="sidebar"> <div class="bar" id='bar'&g_实现左侧展开折叠右侧自适应

电感计算公式_y形接线三相pmsm的线电感与相电感换算公式-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏18次。加载其电感量按下式计算: 阻抗(ohm) = 2 * 3.14159 * F(工作频率) * 电感量(mH),设定需用 360ohm 阻抗,因此: 电感量(mH) = 阻抗 (ohm) ÷ (2*3.14159) ÷ F (工作频率) = 360 ÷ (2*3.14159) ÷ 7.06 = 8.116mH 据此_y形接线三相pmsm的线电感与相电感换算公式

hive修改inputformat-程序员宅基地

文章浏览阅读2.3k次。TINPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”;ALTER TABLE foo PARTITION (pt=’2013-06-04′) SET FILEFORMATINPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”O_hive表修改 inputformat

python selenium 爬虫_customs.gov.cn 爬虫-程序员宅基地

文章浏览阅读977次,点赞4次,收藏3次。海关总署网站新闻:http://www.customs.gov.cn/customs/xwfb34/302425/3049105/index.html采用python的requests抓取时网页返回412,各种尝试均未能解决问题。改用selenium尝试能否爬取。chrome浏览器,chrome://version,查看浏览器版本chromedriver,驱动器,二者版本需保持一致dirver的下载地址如下:http://chromedriver.storage.googleapis.com/in_customs.gov.cn 爬虫

seaborn在柱状图上显示y轴的数值_seaborn柱状图显示数值-程序员宅基地

文章浏览阅读3.4w次,点赞9次,收藏28次。import seaborn as snsimport numpy as npsns.set(style="ticks",color_codes=True)import matplotlib.pyplot as plt#正常显示中文plt.rcParams["font.sans-serif"]=["SimHei"]if __name__ == "__main__": #获取..._seaborn柱状图显示数值

推荐文章

热门文章

相关标签