繁体   English   中英

hadoop映射器读取多行

[英]hadoop mapper reading multiple lines

hadoop的新手-例如,我试图一次读取我的HDFS文件中的块-一次100行,然后使用映射器中的apache OLSMultipleLinearRegression对数据运行回归。 我正在使用此处显示的代码来多行阅读: http : //bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/

我的映射器定义为:

public void map(LongWritable key, Text value,Context context) throws java.io.IOException ,InterruptedException
{
    String lines = value.toString();
    String []lineArr = lines.split("\n");
    int lcount = lineArr.length;
    System.out.println(lcount); // prints out "1"
    context.write(new Text(new Integer(lcount).toString()),new IntWritable(1));
}

我的问题是:怎么从system.out.println中找到lcount == 1? 我的文件用“ \\ n”定界,并且在记录读取器中设置了NLINESTOPROCESS = 3。 我的输入文件格式为:

y x1 x2 x3 x4 x5
y x1 x2 x3 x4 x5
y x1 x2 x3 x4 x5
...

如果一次只能读取1行,我将无法执行多重回归,因为回归API需要多个数据点...谢谢您的帮助

String.split()将正则表达式作为参数。 你必须加倍逃脱。

String []lineArr = lines.split("\\n");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM