[英]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.