【问题标题】:java hadoop: FileReader VS InputStreamReaderjava hadoop: FileReader VS InputStreamReader
【发布时间】:2015-08-12 10:44:27
【问题描述】:

我想在 hadoop hdfs 上使用我的 java 类,现在我必须重写我的函数。 问题是,如果我使用 InputStreamReader,我的应用会读取错误的值。

这是我的代码(所以它可以工作,我想使用未注释的代码部分):

public static GeoTimeDataCenter[] readCentersArrayFromFile(int iteration) {
    Properties pro = new Properties();
    try {
        pro.load(GeoTimeDataHelper.class.getResourceAsStream("/config.properties"));
    } catch (Exception e) {
        e.printStackTrace();
    }
    int k = Integer.parseInt(pro.getProperty("k"));
    GeoTimeDataCenter[] Centers = new GeoTimeDataCenter[k];
    BufferedReader br;
    try {
        //Path pt=new Path(pro.getProperty("seed.file")+(iteration-1));
        //FileSystem fs = FileSystem.get(new Configuration());
        //br=new BufferedReader(new InputStreamReader(fs.open(pt)));
        br = new BufferedReader(new FileReader(pro.getProperty("seed.file")+(iteration-1)));
        for(int i =0; i<Centers.length; i++){
            String[] temp = null;
            try{
                temp = br.readLine().toString().split("\t");
                Centers[i] = new GeoTimeDataCenter(Integer.parseInt(temp[0]),new LatLong(Double.parseDouble(temp[1]),Double.parseDouble(temp[2])),Long.parseLong(temp[3]));
            }
            catch(Exception e) {
                temp = Seeding.randomSingleSeed().split("\t");
                Centers[i] = new GeoTimeDataCenter(i,new LatLong(Double.parseDouble(temp[0]),Double.parseDouble(temp[1])),DateToLong(temp[2]));
            }
        }
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return Centers;
}

也许有人知道这个问题?

最好的问候

【问题讨论】:

  • 您期望什么价值?你得到了什么价值?
  • 它应该读取一个种子文件,例如 k=4:4 行有 2 个双精度值和一个用制表符分隔的长值。

标签: java hadoop bufferedreader filereader inputstreamreader


【解决方案1】:

我发现了问题。我有一个校验和异常。现在我从输入文件中删除所有 .crc 文件。这样我就没有校验和异常,缓冲的阅读器工作正常(未注释的代码部分,楼上)。

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 2014-09-22
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多