Spark GraphX:添加多个边权重

2023-12-07

我是 GraphX 的新手,有一个包含四列的 Spark 数据框,如下所示:

src_ip    dst_ip    flow_count   sum_bytes
8.8.8.8   1.2.3.4          435        1137
  ...       ...           ...         ...

基本上我想映射两者src_ip and dst_ip到顶点并分配flow_count and sum_bytes作为边缘属性。据我所知,我们不能在 GraphX 中添加边属性,因为只允许添加顶点属性。因此,我正在考虑添加flow_count作为边权重:

//create edges
val trafficEdges = trafficsFromTo.map(x =Edge(MurmurHash3.stringHash(x(0).toString,MurmurHash3.stringHash(x(1).toString,x(2))

不过,我可以添加sum_bytes也作为边缘权重?


可以将两个变量添加到边缘。最简单的解决方案是使用元组,例如:

val data = Array(Edge(3L, 7L, (123, 456)), Edge(5L, 3L, (41, 34)))
val edges: RDD[Edge[(Int, Int)]] = spark.sparkContext.parallelize(data)

或者,您可以使用案例类:

case class EdgeWeight(flow_count: Int, sum_bytes: Int)

val data2 = Array(Edge(3L, 7L, EdgeWeight(123, 456)), Edge(5L, 3L, EdgeWeight(41, 34)))
val edges: RDD[Edge[EdgeWeight]] = spark.sparkContext.parallelize(data2)

如果要添加的属性较多,使用案例类会更方便使用和维护。


我相信在这种具体情况下,最优雅的解决方法是:

val trafficEdges = trafficsFromTo.map{x => 
  Edge(MurmurHash3.stringHash(x(0).toString, 
       MurmurHash3.stringHash(x(1).toString,
       EdgeWeight(x(2), x(3))
}

trafficEdges.sortBy(edge => edge.attr.flow_count) // sort by flow_count
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark GraphX:添加多个边权重 的相关文章

随机推荐

  • 使用 R 绘图在 R 中绘制点图

    生成具有这样两个因素的点图的最佳方法是什么 最好使用标准 R 图 而不是 ggplot 并从 2x2 数据框生成 水平线应该是手段 我尝试过克利夫兰点图 但无法弄清楚如何获取两个数据系列并让点抖动 下面的代码应该可以解决这个问题 set s
  • 为 Firebase 云消息传递 PHP 生成 OAUTH 令牌

    我有一个 PHP 页面 我用它来向我开发的移动应用程序的用户发送通知 该页面直到上个月都工作正常 然后它给了我这个错误 multicast id 5174063503598899354 成功 0 失败 1 canonical ids 0 结
  • Kivy:已弃用功能的替代方案

    我正在尝试适应这个code但我仍然是第一步 因为我不理解大多数称为 like like 的功能可选数据项 Adapter 列表适配器 or 可选视图 当我在 kivy 网站上查找它们时 我发现它们被列为已弃用 我在 Kivy 网站上找不到这
  • 如何为每个商店对象提供自己的库存数组列表?

    发现这个很难 基本上我有三个类 Store 类 Stock 类 然后是 GUI 类 创建商店时 我希望它有自己的 arrayList 以便我可以向其中添加多个库存对象 通过 GUI 完成 我尝试只包含所需的基本代码 已删除 getter 方
  • 如何对元组数组进行排序?

    如何实现 或创建 元组列表的数组排序 以下内容是从我的代码中收集到的 本质上我创建了一个元组数组 并通过 for 循环填充它 之后我尝试对其进行排序 var myStringArray String Int nil myStringArra
  • 内置 python 函数的时间/空间复杂度

    split strip open 内置 python 函数 的时间 空间复杂度是多少 有谁知道我可以在哪里查找这些函数的时间 空间复杂度 确切的答案将取决于输入到函数中的属性 最简单的找出方法可能是检查这些函数的源代码 python 源代码
  • 如何使用 ffmpeg 在大型复杂过滤器上 concat 之前应用 1:1 SAR

    我使用 ffmpeg 以类似于以下的方式连接视频 我的输入遇到了一个奇怪的错误 Parsed concat 0 000000002a05bb80 Input link in10 v0 parameters size 1280x720 SAR
  • 如何在 Python 中使用 K-Means 聚类找到最佳聚类数

    我是聚类算法的新手 我有一个电影数据集 包含 200 多部电影和 100 多个用户 所有用户都至少评价了一部电影 值 1 表示好 0 表示坏 如果注释者别无选择 则值为空白 我想根据相似的用户的评论对他们进行聚类 这样的想法是 将相似电影评
  • 如何将客户端属性添加到 FirebaseListObservable 中的项目?

    我正在构建一个由 Firebase 数据库结构支持的简单聊天应用程序 messages KTjL oLrKOboa2su2zk name puf text Look I m smiling KTjNfaNem752ChFBcnC name
  • 如何动态更改log4j日志文件?

    我想要一个 log4j 配置 使得日志文件名应类似于 System name log log 也就是说 如果应用程序在任何系统上启动 则无需更改配置文件或代码 它应该生成如上所述的日志文件名 谢谢 我这样做 1 通过以下方式初始化记录器 S
  • 如何在页面加载时使用 ajax 将 php include 加载到页面中

    我有一个 php include 需要一段时间才能加载 因为 PHP 必须获取大量数据 我不想减慢整个网页加载等待此包含的速度 那么如何使用 ajax 加载此包含 我不希望通过单击按钮来触发ajax 我只是希望它在页面加载时加载包含内容 这
  • 图像在旋转时会改变大小。我该如何阻止这个?

    我正在为 Android 制作游戏 我需要旋转图像 当我旋转它时 它的尺寸显然会发生变化 例如 当它旋转 45 度时 它是正方形 但我希望它适用于任何矩形 因此它是一个更通用的解决方案 它的宽度和高度变成对角线的长度 比原来的长 经过一些代
  • 如何使用MacWire(播放框架)将依赖项注入到服务中

    我有一个服务类 该服务有一种方法getSomethingFromApi 现在 我想要有 play 配置实例 以便我可以从 application conf 中提取内容 并有一个 play WSClient 以便我可以执行 http 调用 这
  • 在Python中组合with语句和for循环

    考虑以下 python 代码 它使用上下文管理器来获取和释放资源 from contextlib import contextmanager contextmanager def res i print f Opening resource
  • Git 无法在 Linux 上使用 LF 检出使用 CRLF 存储的文件

    我正在检查第三方项目 libjpeg https github com winlibs libjpeg在Linux上 这只是一个例子 实际上我在许多其他项目中也遇到了同样的问题 我有以下 Git 行结尾配置 我只配置了全局设置 设置为以 L
  • 检查用户是否使用 Tor 请求网站的现代方法是什么? (php)

    我尝试了很多方法 但所有方法都不适合我 我想它们已经过时了 事情已经改变了 也许有人可以告诉我挖掘的方向 我是一个名为的 PHP 库的作者TorUtils它提供了许多与 Tor 和中继相关的类 One of the classes it p
  • 在测试期间覆盖 DateTime.Now 的好方法是什么?

    我有一些 C 代码 它们依赖今天的日期来正确计算未来的事情 如果我在测试中使用今天的日期 我必须在测试中重复计算 这感觉不对 在测试中将日期设置为已知值以便我可以测试结果是否为已知值的最佳方法是什么 我的偏好是让使用时间的类实际上依赖于接口
  • 是否可以在事务内(在 SQL Server 内)运行多个 DDL 语句?

    我想知道是否可以在一个事务内运行多个 DDL 语句 我对 SQL Server 特别感兴趣 尽管其他数据库 至少是 Oracle PostgreSQL 的答案也可能很有趣 我一直在为事务内创建的表执行一些 CREATE TABLE 和 CR
  • jquery 中 angularjs 拦截器的等效项

    我想像 httpProvider interceptors 在 angularjs 中那样拦截 REST 请求的响应 https docs angularjs org api ng service http 我正在使用 jQuery 制作一
  • Spark GraphX:添加多个边权重

    我是 GraphX 的新手 有一个包含四列的 Spark 数据框 如下所示 src ip dst ip flow count sum bytes 8 8 8 8 1 2 3 4 435 1137 基本上我想映射两者src ip and ds