MapReduce 中的叉积

2023-11-24

我想使用 Java MapReduce 在 Hadoop 中的两个数据集上执行昂贵的叉积操作。

例如,我有数据集 A 和数据集 B 中的记录,并且我希望输出中数据集 A 中的每条记录与数据集 B 中的每条记录相匹配。我意识到它的输出大小是|A| * |B|,但还是想做。

我看到猪有CROSS但我不知道它是如何在高层实施的。也许我会去看一下源代码。

不寻找任何代码,只是想知道在高层次上我应该如何解决这个问题。


在查看文档相似性(将一个文档与每个其他文档进行比较)时,我做了类似的事情,并最终得到了一个自定义输入格式,该格式可以分割两个数据集,然后确保每个数据子集都有一个“分割”。

所以你的分割看起来像(每个合并两组 10 条记录,输出 100 条记录)

A(1-10) x B(1-10)
A(11-20) x B(1-10)
A(21-30) x B(1-10)
A(1-10) x B(11-20)
A(11-20) x B(11-20)
A(21-30) x B(11-20)
A(1-10) x B(21-30)
A(11-20) x B(21-30)
A(21-30) x B(21-30)

我不记得它的性能如何,但有一个大小为数千的文档集可以相互比较(在 8 节点开发集群上),并计算了数百万个叉积。

我还可以对算法进行改进,因为某些文档永远不会比其他文档得分高(例如,如果它们之间的时间时间太多),并因此生成更好的分割。

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

MapReduce 中的叉积 的相关文章

  • 在 Google Cloud Dataproc 环境中使用 Hadoop 流式处理运行 python map reduce 作业时出错

    我想使用 hadoop 流方法在 Google Cloud Dataproc 中运行 python map reduce 作业 我的map reduce python脚本 输入文件和作业结果输出位于Google Cloud Storage中
  • Spark/Yarn:HDFS 上不存在文件

    我在 AWS 上设置了 Hadoop Yarn 集群 有 1 个主服务器和 3 个从服务器 我已经验证我有 3 个活动节点在端口 50070 和 8088 上运行 我在客户端部署模式下测试了 Spark 作业 一切正常 当我尝试使用 Spa
  • 将数据从 .txt 文件加载到 Hive 中以 ORC 形式存储的表

    我有一个数据文件位于 txt格式 我正在使用该文件将数据加载到 Hive 表中 当我将文件加载到类似表中时 CREATE TABLE test details txt visit id INT store id SMALLINT STORE
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • MapReduce 中的分区到底是如何工作的?

    我认为我总体上对 MapReduce 编程模型有一定的了解 但即使在阅读了原始论文和其他一些来源之后 我仍然不清楚许多细节 特别是关于中间结果的分区 我将快速总结到目前为止我对 MapReduce 的理解 我们有一个可能非常大的输入数据集
  • MapReduce 中 1 个任务的减速器数量

    在典型的 MapReduce 设置 如 Hadoop 中 1 个任务使用多少个减速器 例如计算单词数 我对 Google MapReduce 的理解意味着只涉及 1 个减速器 那是对的吗 例如 单词计数会将输入分为 N 个块 并且 N 个
  • 从机上的 DiskErrorException - Hadoop 多节点

    我正在尝试处理来自 hadoop 的 XML 文件 在对 XML 文件调用字数统计作业时出现以下错误 13 07 25 12 39 57 INFO mapred JobClient Task Id attempt 201307251234
  • 如何使用 log4j 自定义附加程序在 HDFS 上创建日志?

    Overview 我们希望使用 log4j 记录 Spark 作业活动 并将日志文件写入 HDFS Java 8 Spark 2 4 6 Scala 2 1 2 Hadoop 3 2 1 我们无法找到本地 apache log4j 附加程序
  • Spark中如何获取map任务的ID?

    Spark中有没有办法获取map任务的ID 例如 如果每个映射任务都调用用户定义的函数 我可以从该用户定义的函数中获取该映射任务的 ID 吗 我不确定您所说的地图任务 ID 是什么意思 但您可以使用以下方式访问任务信息TaskContext
  • 通过 Java 连接 Apache Drill

    在 Apache Drill 的 Wiki 中 我只能看到通过 SqlLine 客户端运行的查询 除了 REST API 之外 是否有任何编程方式可以在 Drill 中运行查询 有任何示例或指示吗 或者它与使用 JDBC 驱动程序运行 SQ
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • Hive:为现有文件夹结构添加分区

    我在 HDFS 中有一个文件夹结构 如下所示 但是 实际上没有使用以下命令在表上创建分区ALTER TABLE ADD PARTITION命令 即使文件夹结构的设置就像表有分区一样 如何自动将所有分区添加到Hive表中 Hive 1 0 外
  • 为什么 SequenceFile 被截断?

    我在学习Hadoop这个问题困扰了我一段时间 基本上我正在写一个SequenceFile到磁盘然后读回 然而 每次我收到EOFException阅读时 深入观察发现 在写入序列文件时 它被过早截断 并且总是发生在写入索引962之后 并且文件
  • “客户端”对于 Hadoop/HDFS 究竟意味着什么?

    我理解其背后的一般概念 但我希望对 客户 是什么有更多的澄清和明确的定义 例如 如果我只是在终端上写一个 hdfs 命令 它仍然是 客户端 吗 ClientHadoop中是指用于与Hadoop文件系统通信的接口 Hadoop 可使用不同类型
  • Spark Driver 内存和 Application Master 内存

    我是否正确理解客户端模式的文档 客户端模式与驱动程序在应用程序主机中运行的集群模式相反 在客户端模式下 驱动程序和应用程序主机是单独的进程 因此spark driver memory spark yarn am memory一定小于机器内存
  • PHP中通过Hive/Thrift查询数据库不起作用

    我正在尝试通过 PHP 中的 Hive Thrift 查询数据库 但是 我不断收到错误 TSocket timed out reading 4 bytes from XYZ 我正在使用来自的代码 https cwiki apache org
  • Cassandra 不等于运算符

    向所有 Cassandra 专家提出问题 我有一个包含大约一百万条记录的列族 我想以这样的方式查询这些记录 我应该能够执行Not Equal To种操作 我用谷歌搜索了这个 看来我必须使用某种Map Reduce 有人可以告诉我在这方面有哪
  • HDFS NFS 位置使用奇怪的数字用户名值作为目录权限

    在 NFS 安装的 HDFS 位置的文件夹权限中看到用户名的无意义值 而 HDFS 位置本身 使用 Hortonworks HDP 3 1 看起来很好 例如 ls lh nfs mount root user total 6 5K drwx
  • apache pig 是否有相当于“SHOW TABLES”的东西?

    我有一个在 Pig 中访问的 Hadoop 数据存储 但没有太多关于它的文档 而且我是 Pig 的新手 所以我正在寻找与 SHOW TABLES 等效的 Pig 当我连接到 MySQL 数据库时 我可以执行此操作并大致了解其中的数据 我找到
  • 将值传递给映射函数 - CouchDB

    我想知道是否可以将值传递给 couchDB 设计文档中的映射函数 例如 在下面的代码中 可以传递用户输入的值并使用该值来运行地图函数 也许我可以传递用户UserName当他们登录时 然后根据地图功能显示视图 function doc if

随机推荐

  • 在 Web 应用程序之间共享 ASP.NET 资源文件

    我有多个项目需要共享资源文件 resx 已提出将资源文件移动到单独的程序集并让 Web 项目引用它的建议 有如何执行此操作的示例吗 我是否创建一个新的类库项目并将 App GlobalResource 文件夹移到其中 我认为这不会起作用 因
  • 如何使用自然的entrySet()顺序迭代HashMap?

    我的地图包含按字母顺序排序的键 当我显示它时 我使用的是entrySet iterator 但我的结果不是按字母顺序排列的 我如何才能按顺序获得结果 不 您的地图不按字母顺序保存元素 你可能有 put 然后按该顺序 但映射没有定义的迭代顺序
  • 您的 Android App Bundle 使用错误的密钥进行签名。确保您的应用程序包使用正确的签名密钥进行签名,然后重试

    如何使用正确的签名密钥对我的 Android 应用程序包进行签名 我为这个问题把头撞在桌子上大约两个小时 当我最终放弃并填写 重置密钥 请求时 我意识到我当前正在尝试将其上传到错误的项目一直以来 因此 第一步 确认您正在尝试上传到正确的项目
  • 流式 HTTP 响应,刷新到浏览器

    我有如下的观点 from django views decorators http import condition def stream for i in range 0 40 yield 1024 yield d i time slee
  • 贫血领域模型:优点/缺点

    我想知道使用贫血域模型的优点和缺点 请参阅下面的链接 福勒文章 由于 贫血领域模型 是反模式 为什么有这么多系统实现它 我认为有几个原因 1 系统的复杂性 在一个简单的系统中 几乎是您在互联网上找到的所有示例和示例代码 如果我想实现 将产品
  • 如何在单击某些按钮时重新加载我的 UIViewController?

    我正在开发一个 iPhone 应用程序 我有一个UIViewController类中存在一些封面流动画 根据设计 我的视图顶部有一些 5 个按钮 每个按钮都有一个IBAction单击按钮的方法我需要显示具有不同数据的不同组的封面流 并且封面
  • 在 Perl 正则表达式中嵌入评估

    所以我正在编写一个快速的 Perl 脚本 它清理一些 HTML 代码并通过 html gt pdf 程序运行它 我希望丢失尽可能少的信息 因此我想扩展文本区域以适应其中当前的所有文本 在我的例子中 这意味着根据文本框中字符串的值将行数设置为
  • C# 线程安全的StreamWriter 怎么做呢? 2

    所以这是我上一个问题的延续 所以问题是 构建线程安全的程序的最佳方法是什么 因为它需要将双精度值写入文件 如果通过流写入器保存值的函数被多个线程调用 最好的方法是什么 我修改了MSDN上找到的一些代码 下面怎么样 这个正确地将所有内容写入文
  • Django - 限制表单中选择字段的选择

    我在 Django 中的选择字段上遇到问题 我需要一个表格来将订单移动添加到工单中 这些是choices py中的选择 STATUS CHOICES 1 Orden Creada 2 En Tienda Asociada 3 Recibid
  • 如何将序列号列添加到结果数据中? [复制]

    这个问题在这里已经有答案了 可能的重复 向此 T SQL 查询添加行号 我使用的是 sql server 2008 当我输入 从员工中选择 结果是这样的 EmpID EmpName Salary DB1608 David 100000 JT
  • JavaScript .prototype 如何工作?

    我不太热衷于动态编程语言 但我已经编写了相当多的 JavaScript 代码 我从来没有真正了解过这种基于原型的编程 有人知道这是如何工作的吗 var obj new Object obj prototype test function a
  • SQL LIKE 语句的 LINQ 版本

    我是 LINQ 的新手 在网上搜索模仿 SQL 的 LIKE 语句的 LINQ 示例并不能让我满意 我想要的是产生与此 SQL 相同的查询结果 SELECT FROM table 1 WHERE column 1 LIKE 0 我想从 ta
  • Neo4j:MERGE 创建重复节点

    我的数据库模型有用户和 MAC 地址 一个用户可以有多个MAC地址 但一个MAC只能属于一个用户 如果某个用户设置了他的 MAC 并且该 MAC 已经链接到另一个用户 则现有关系将被删除 并在新所有者和该 MAC 之间创建新关系 换句话说
  • 在 Swing 应用程序中使用 Hibernate 进行会话管理

    如何在 Java Desktop Swing 应用程序中进行 Hibernate 会话管理 您使用单个会话吗 多次会议 以下是有关该主题的一些参考资料 http www hibernate org 333 html http blog sc
  • 围绕多个插入或更新使用事务的正确方法

    测试插入 更新失败并回滚此事务 如果有 的正确方法是什么 我认为我所拥有的不起作用 因为我的插入 更新是 3 个单独的语句 并且 ROWCOUNT 将仅反映最后执行的语句 BEGIN TRANSACTION Script GO INSERT
  • php isset() 在 javascript 中等效

    我正在寻找与 php 函数等效的 javascriptisset 我已经尝试过此处描述的方法JavaScript isset 等效项但在 firebug 中 出现错误 data del is undefined Firebug warnin
  • 使用 awk 从 stdin 或文件读取

    到目前为止 这是我的代码 awk a length END for i in a print i a i lt 1 sort n 它从文本文件中读取行的长度 并输出行的长度 然后输出有多少行具有相同的长度 所以输入 hello guys h
  • Passport.js - 隐式将 {user: req.user} 传递给模板?

    现在在多个项目中使用 Passport js 和 Express 我注意到自己一遍又一遍地这样做 即指定 user req user 明确用于我的 Express 路线 有时我忘记传递它 突然之间就像用户甚至不再登录一样 我怎样才能通过us
  • “……”标记是什么意思?即参数包上的双省略号运算符

    在浏览 gcc 当前对新 C 11 标头的实现时 我偶然发现了 标记 您可以检查以下代码编译良好 来自 godbolt org template
  • MapReduce 中的叉积

    我想使用 Java MapReduce 在 Hadoop 中的两个数据集上执行昂贵的叉积操作 例如 我有数据集 A 和数据集 B 中的记录 并且我希望输出中数据集 A 中的每条记录与数据集 B 中的每条记录相匹配 我意识到它的输出大小是 A