java - hadoop映射器读取多行

标签 java input hadoop mapper

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");

关于java - hadoop映射器读取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14669282/

相关文章:

css - 如何将 <span> 放入 &lt;input&gt; 中?

java - Hadoop:在映射函数中有线程

hadoop - 使用 REST 服务访问 Hadoop 数据

java - 在 Java 中设置自定义二进制数据消息的最简单方法是什么?

javax.servlet 无法解析为类型

javascript - 如何在 &lt;input&gt; 为空时发出 CSS 警告(最好没有 JS)

Java MapReduce 计数器 - Oozie

java - 在 Eclipse 中使用 jasypt

java - 我如何告诉 java 它更接近 350 -> 355 -> 360 -> 05 度而不是一直绕

html - 如何检测在 asp.net (mvc) 中单击了哪个提交按钮