统一识别_图计算| 学习笔记

简介: 快速学习统一识别_图计算

开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第七阶段)统一识别_图计算】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/682/detail/11840


统一识别_图计算

图计算本身在调用的时候比较简单,没有 API,所以本节简单介绍下什么是图计算。

首先可以看到相应的两个数据集:

)).toDF( colNames="id", "name","age")

一个叫做 vertexvertex 可以理解为一个点,点里的数据第一列是 id, 第二列是 name,第三列是 age,第二个数据集val edge = spark.createDataFrame(List( 

val edge = spark.createDataFrame(List(

("a","b", "friend"),

("b","c","follow"),

("c","b","fo1low"),

("f""c","follow"),

("e","f","follow"),

("e","d","friend"),

("d","a","friend"),

("a","e","friend")

)).toDF( colNames= "src","dst","relationship")

}

}

// edge 对应的是一个边,这个边里的数据有"src"一端,"dst"另一端目标,"relationship"关系,所以这个vertex 这个点描述的其实是一个人,这个人的 id、名字、年龄是多少,edge 其实是在描述。

人与人之间的关系,找到ABC的所有关系。

画一个简略的草图,

首先第一个是A,第二个B,第三个为C,接下来AB有关系,可以连一条线,BC有关系,连线,CD没有关系,fc没有关系,e""f",""e""d","d""a""a""e 都没有关系,只找有关系的ABBC。如果这样,C通过B也是可以找到A的。

 2022-11-22 (19).png

那么想通过一个顶点找到和所有点都关联的点需要怎么去找呢?

在写之前要导入两个 mailyilai,

<dependency>

<groupId>graphframes</groupId>

<artifactId>graphframes</artifactId>

<version>0.7.0-spark2.4-s_2.11</version>

</dependency>

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-graphx_2.11</artifactId>

<version>${spark.version}</version>

</dependency)

这一串代码导入Pom.xml文件中,往下实现通过关系找到哪一些人是可以在一个团队里、那些人是相互有关系的需求,

spark.sparkContext.setCheckpointDir("checkpoint")

val graph = GraphFrame(vertex,edge).connectedComponents.run()

graph.show()

}

}

// 创建一个 GraphFrame,接收两个参数分别为 vertexedge,使用 connectedComponents划分团队关系,对图中所有点进行串联,还需调用 run 才可程序运行,获取到一张图 graph,使用 show 打印这张图,看其中信息,运行出结果后发现报错,

2022-11-22 (21).png

错误需要设置 CheckpointDir  的目录。所以在调用 run 之前,通过spark.sparkContext 来去设置一个 setCheckpointDir,目录称为"checkpoint"

此时再运行一遍发现还在报错,是因为 GraphFrame JsonDSL$ 有冲突,需要打开 pom 文件找到

<dependency>

<groupId>org.json4s</groupId>

<artifactId>json4s-jackson_2.11</artifactId>

version>3.6.6</version>

</dependency>

这个 jar 包进行删除可解决。

2022-11-22 (23).png

注意:顶点这个数据集当中必须有一列叫做 id,会按照这个 id 来进行联通,边“edge”这个数据集当中必须要有两列,"src""dst",边的两端。把能联系起来的点放到同一个 component 中。

相关文章
|
分布式计算 监控 Java
spark开发环境详细教程1:IntelliJ IDEA使用详细说明
spark开发环境详细教程1:IntelliJ IDEA使用详细说明
521 0
spark开发环境详细教程1:IntelliJ IDEA使用详细说明
|
存储 分布式计算 资源调度
Spark本地环境搭建(local模式)
Spark本地环境搭建(local模式)
|
分布式计算 Spark
【Spark】Spark Dataframe 对项目中的数据实现列转行操作
【Spark】Spark Dataframe 对项目中的数据实现列转行操作
511 0
【Spark】Spark Dataframe 对项目中的数据实现列转行操作
|
4天前
|
人工智能 运维 安全
|
2天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
9天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
814 109
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
410 9