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
...
如果我一次只读一行,我无法执行多重回归,因为回归API会占用多个数据点...感谢您的帮助
答案 0 :(得分:0)
String.split()
将正则表达式作为参数。你必须双重逃脱。
String []lineArr = lines.split("\\n");