热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hadoop文本文件分析时如何处理跨行的数据

网上举的例子多是一行就是一个分析单位,如果两行或多行才表示一个分析单位呢,如第一行是姓名第二行是学期第三行是成绩每三行才是一个有意义的分析单位hadoop是如何分割的文本文
网上举的例子多是一行就是一个分析单位,如果两行或多行才表示一个分析单位呢,如
第一行是姓名
第二行是学期
第三行是成绩

每三行才是一个有意义的分析单位

hadoop是如何分割的文本文件,有类似的例子的,请介绍下

6 个解决方案

#1


请参考NLineInputFormat类    该类可以设定N行为一个分片

#2


好的。我试下,谢谢

#3


学习了

#4


该回复于2014-02-23 20:22:57被版主删除

#5


hadoop分割文本的代码得自己写,怎么分都可以,一般是用MapReduce缺省的处理程序,也就是去头补尾方式,按字节拆分后,从拆分点读到回车符才算正式开始这一段,读到结束点后再继续读到下一个回车符才算正式结束当前段。这样可以保证每一段都是整行数据构成。除了Hadoop外,集算器的拆分方案也一样,直接分段并行处理文本文件。

如果只是按行数来决定记录单位而没有其它分割符,没什么好办法。要数出当前行数必须从头遍历,这会使分段并行失去意义,完全达不到期望的高性能。需要事先将数据做些处理,三行变一行,或者加入记录分隔符。

#6


楼上u012解释是比较准确的,昨天看到这个解释还不太懂,今天仔细想后,确实,如果仅仅按行数在确定记录单位。在文件分块后,除了第一个块能够确定,其他块根本无法知道某一行该是那条记录的第几行,也就根本无法并行。而对于NLineReader,我看到书上的解释是,那样会造成split的尺寸过小,从而导致map数量过多,也会导致大量的非本地运算,对于效率而言是不利的。
综上,就是只能对文件进行预处理,三行变一行,那这样就比较简单转变为单行读取,套用自带的输入格式即可解决,否则就是处理,重新加入其它分隔符,重写分割代码,这里就需要自己按字节来判断得到正确的分隔符的起始结束位置了。因为split是会跨block的,暂时重写这一点我也不会,还没有理解的特别清楚。

推荐阅读
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • 本题旨在通过给定的评级信息,利用拓扑排序和并查集算法来确定全球 Tetris 高手排行榜。题目要求判断是否可以根据提供的信息生成一个明确的排名表,或者是否存在冲突或信息不足的情况。 ... [详细]
  • jQuery HooRay:一款自创的实用 jQuery 工具插件
    这款插件主要由作者在工作中积累的常用功能开发而成,旨在解决现有插件间的冲突及浏览器兼容性问题。通过整合和优化现有插件,确保其稳定性和高效性。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 解析SQL查询结果的排序问题及其解决方案
    本文探讨了为什么某些SQL查询返回的数据集未能按预期顺序排列,并提供了详细的解决方案,帮助开发者理解并解决这一常见问题。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
author-avatar
Toby_魚5902
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有