Hadoop 减少多种输入格式

2024-03-11

我在 HDFS 中有两个数据格式不同的文件。如果我需要减少两个数据文件,那么作业设置会是什么样子?

例如想象一下常见的字数统计问题,在一个文件中使用空格作为世界分隔符,在另一个文件中使用下划线。在我的方法中,我需要针对各种文件格式使用不同的映射器,然后将其输入到通用的减速器中。

怎么做? 或者有比我更好的解决方案吗?


查看MultipleInputs http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/MultipleInputs.html解决这个问题的类。这非常整洁——你传入InputFormat以及可选的Mapper class.

如果您正在谷歌上寻找代码示例,请搜索“Reduce-side join”,这是通常使用此方法的地方。


另一方面,有时我发现使用 hack 更容易。例如,如果您有一组以空格分隔的文件,另一组以下划线分隔,则使用相同的映射器加载这两个文件并TextInputFormat并对两个可能的分隔符进行标记。计算两个结果集中的标记数量。在字数统计示例中,选择具有更多标记的那个。

如果两个文件具有相同的分隔符但具有不同数量的标准列,这也适用。您可以对逗号进行标记,然后查看有多少个标记。如果是 5 个令牌,则来自数据集 A,如果是 7 个令牌,则来自数据集 B。

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

Hadoop 减少多种输入格式 的相关文章

随机推荐

  • Spring可以在抽象类中自动装配吗?

    Spring 无法自动装配我的对象 是否可以在抽象类中自动装配对象 假设所有模式都在 application context xml 中提供 问题 基类和扩展类 如果有 Service Component 上应该使用什么注释 Example
  • Azure 存储 403 禁止异常是 32 位问题吗?

    我们花了相当多的时间来定位出现以下异常的原因 The remote server returned an error 403 Forbidden 堆栈跟踪 at Microsoft WindowsAzure Storage Core Exe
  • PC 客户端上的 C# Crystal Report 总是要求登录提示 SQL Server

    创建setup我的程序 程序运行良好 可以增删改查数据库 当我打开报告时 总是出现登录提示的问题 但在数据库字段中为空禁用 在服务器计算机上 报告没有问题 在我建立连接的代码中 像这样 cnn ServerName 179 15 30 74
  • map() get() 混淆

    我刚刚浏览了 jQuery API 我有点困惑map get 方法 我知道我错了但是map 方法看起来很像 each 陈述 除了文档说它返回一个新的 jQuery 对象 我一直在 jsfiddle 上玩这个 试图弄清楚它 但我还不太明白 h
  • 日志文件监视器

    是否可以在另一个应用程序更新文件时打开文本文件并读取内容 这样就不会导致锁定冲突 我需要监视一个应用程序的日志文件 每次发生事件时该日志文件都会由另一个应用程序更新 在尝试读取文件之前 我会检查该文件是否正在使用 但这似乎并不在所有情况下都
  • 在 Qt Creator 中使用 Qt 标准图标

    我想使用 Qt Standard 图标 as here http standards freedesktop org icon naming spec icon naming spec latest html 我发现了很多例子如何以编程方式
  • Thymeleaf 不解释 sec 标签

    我遇到了一个问题 thymleaf 无法识别我的 Spring Boot 项目中的 sec 标签 例如下面的 sec authentication 未被解释 并按浏览器中的 html 中的形式显示 div Roles span span d
  • 从 Elasticsearch 文档中删除字段

    我需要删除索引到 Elasticsearch 的所有文档中的一个字段 我该怎么做 backtrack 所说的是 true 但是在 Elasticsearch 中有一种非常方便的方法可以做到这一点 Elasticsearch 会抽象出删除的内
  • SQLite .NET,ExecuteScalarAsync,如何知道何时没有结果?

    SQL 语句正在检索行的 ID 但可能不存在这样的行 当我在 GUI 工具中执行特定 SQL 语句时 它返回 0 行在 0 毫秒内返回 但是 当我执行相同的 SQL 语句时ExecuteScalarAsync
  • Spark Scala UDP 在侦听端口上接收

    中提到的例子http spark apache org docs latest streaming programming guide html http spark apache org docs latest streaming pro
  • curl 重新使用 https 连接会话

    我已经使用 openssl 构建了curl 并且能够执行https 连接 现在 每次当curl建立TLS连接时 它都会再次握手 我需要利用客户端与服务器的先前连接会话ID 并在下一个请求中使用它 我已经尝试过以下选项 但每次尝试仍然会进行新
  • 当您有列名的字符向量时,如何不使用 select() dplyr 选择列?

    我正在尝试使用 dplyr 取消选择数据集中的列 但自昨晚以来我无法实现这一目标 我很清楚解决方法 但我正在严格尝试通过 dplyr 找到答案 library dplyr df lt tibble x c 1 2 3 4 y c a b c
  • Angular 2 HTTP 响应拦截器

    在 Angular 1 中 全局处理 HTTP 响应状态是通过 httpProvider angular module app service httpResponseInterceptor q function q this respon
  • Node.js 开发人员的高级文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近我们的团队正在使用 Node js 开发一个新项目 开始使用 Node js 并不难 但现在我们才
  • 检查范围内唯一单元格的数量

    我有一张 Excel 表格 在 E 列下 我有 425 个包含数据的单元格 我想检查相同的数据 即单元格内的文本 是否在 E 列下剩余 424 个单元格中的任何其他位置重复 我该如何执行此操作 例如 在 E54 中我有 Hello Jack
  • UITextField 文本上的阴影

    是否可以在文本中添加阴影UITextField 从 3 2 开始 您可以使用 CALayer 阴影属性 textField layer shadowOpacity 1 0 textField layer shadowRadius 0 0 t
  • 错误:错误 1005:无法创建表“cat10e.recording”(错误号:150)[重复]

    这个问题在这里已经有答案了 我正在尝试对我的数据库进行正向工程 该数据库有 7 个表 但其中一个向我发送了错误 我真的不知道从这里做什么 因为它的设置就像我的其他表一样 所以我不确定是什么导致了错误 谷歌返回了许多不同的答案 专辑SQL p
  • 代码不适用于 matlab 中的图像处理

    我想在matlab中计算这个公式 m n d size img1 matrix1 sum abs img1 img2 a matrix1 m n b a 100 其中img1 img2是尺寸为512 512 3的两张图像 目标是获得单个数值
  • Linux 中断与轮询

    我正在开发一个带有 DSP 和 ARM 的系统 ARM上有一个linux操作系统 我有一个 DSP 向 ARM Linux 发送数据 在 Linux 中 有一个内核模块读取从 DSP 接收到的数据 内核模块被唤醒以读取数据 使用 DSP 和
  • Hadoop 减少多种输入格式

    我在 HDFS 中有两个数据格式不同的文件 如果我需要减少两个数据文件 那么作业设置会是什么样子 例如想象一下常见的字数统计问题 在一个文件中使用空格作为世界分隔符 在另一个文件中使用下划线 在我的方法中 我需要针对各种文件格式使用不同的映