2 qq 26101209 qq_26101209 于 2016.04.03 16:14 提问

hadoop中map处理多行数据,可以满足用于算法模型的输入。

在分布式平台做算法研究,遇到一个map处理文件是以行为单位。怎么使map可以
读取多行数据然后可以在map中进行算法模型的训练。

以下是我的尝试:
1:NLineInputFormat 不行,还是单行输出数据。
2:重写 InputFormat函数。 数据集没有具体的切分标志,只能说一个map处理
100或200行数据。没有类似 {} “ ” —— 的切分标志。

1个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.03 22:31

你重写函数后也总要有一个规则来定义你的map处理方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Hadoop之多行读取数据
一,需求: 在map执行前,即setInputFormatClass过程,会进行数据的读入,默认的是每次读入一行数据,进行计算。现在需要改成每次读入两行数据并且合并结果输出。二,思路及解决方法: 建议先看看他们的源码,理解思路。 我这里是采用的TextInputFormat.class的输入格式。它的key是每一行的偏移位置,value就是它这一行的内容。其中有创建LineRecordRead
MapReduce数据并行计算模型介绍
1、MapReduce来龙去脉  MapReduce是一个说难懂也难懂、说好懂也好懂的概念。  说它难懂,是因为,如果你只理论上的去学习、去理解,确实很难懂。  说它好懂,是因为,如果你亲手在hadoop运行过几个MapReduce的job,并稍微学点hadoop的工作原理,基本上也就理解MapReduce的概念了。  所以,有句话说的特别好:“如果将编程比作运动的话,那么它绝对不
MapReduce数据处理过程
Hadoop MapReduce作为一个大数据处理工具,非常的好用,但是如果我只需要单机处理不是特别庞大的数据,比如4G的查询日志,那么在没有现成环境的情况下,搭起来一个Hadoop环境还是挺烦的,直接用C/Java写一个简单的单机多进程Map Reduce数据处理工具岂不是更方便? 为了实现这个目标,我们首先要研究一下Map Reduce是如何工作的,这篇文章是从Yahoo的开发者中心的找
大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)
hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce。mapreduce其实就是一个移动式的基于key-value形式的分布式计算框架。其计算分为两个阶段,map阶段和reduce阶段,都是对数据的处理,由于其入门非常简单,但是若想理解其中各个环节及实现细节还是有一定程度的困难,因此我计划在本文中只是挑几个
Hadoop之MapReduce编程模型
一、MapReduce编程模型         MapReduce将作业的整个运行过程分为两个阶段:Map阶段和Reduce阶段         Map阶段由一定数量的Map Task组成             输入数据格式解析:InputFormat             输入数据处理:Mapper             数据分组:Partitioner        Redu
MapReduce类型与格式(输入与输出)
一、输入格式 (1)输入分片记录 ①JobClient通过指定的输入文件的格式来生成数据分片InputSplit; ②一个分片不是数据本身,而是可分片数据的引用; ③InputFormat接口负责生成分片; 源码位置:org.apache.hadoop.mapreduce.lib.input包(新)           org.apache.hadoop.mapred.lib 包(旧)
hadoop中map到reduce的过程详解
对于Hadoop的MapReduce执行机制,主要分为两部分来处理数据,mapper和reducer阶段,这两个阶段中间有一个非常重要的shuffle过程,这个过程其实是mapreduce的核心部分,因为优化过程主要就是从shuffle处下手。系统将map输出作为输入传给reducer的过程(同时会排序)成为shuffle。shuffle是MapReduce的“心脏”,是奇迹发生的地方。 现就m
MapReduce 中 map 分片大小确定 和map任务数的计算
Hadoop中在计算一个JOB需要的map数之前首先要计算分片的大小。计算分片大小的公式是: goalSize = totalSize / mapred.map.tasks minSize = max {mapred.min.split.size, minSplitSize} splitSize = max (minSize, min(goalSize, dfs.block.si
[Hadoop]MapReduce多路径输入与多个输入
1. 多路径输入FileInputFormat是所有使用文件作为其数据源的 InputFormat 实现的基类,它的主要作用是指出作业的输入文件位置。因为作业的输入被设定为一组路径, 这对指定作业输入提供了很强的灵活性。FileInputFormat 提供了四种静态方法来设定 Job 的输入路径:public static void addInputPath(Job job,Path path);
研究MapReduce源码之实现自定义LineRecordReader完成多行读取文件内容
TextInputFormat是Hadoop默认的数据输入格式,但是它只能一行一行的读记录,如果要读取多行怎么办? 很简单 自己写一个输入格式,然后写一个对应的Recordreader就可以了,但是要实现确不是这么简单的首先看看TextInputFormat是怎么实现一行一行读取的大家看一看源码public class TextInputFormat extends FileInputFormat