如何在java中使用weka处理非常大的arff数据集

oknwwptz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(254)

我正在尝试用java中的weka运行一个j48分类器。我得到了异常和gc\u错误的内存。我试着调试,我注意到它与读取arff文件有关,

d = new DataInputStream(fs.open(new Path(filePath)));
                  reader = new BufferedReader(new InputStreamReader(d));
                  arff = new ArffReader(reader, 100000);
                  data = arff.getStructure();
                  data.setClassIndex(data.numAttributes() - 1);
                  System.out.println("====add each line");
                  // Add each line to the input stream
                  while ((inst = arff.readInstance(data)) != null) {            
                      //inst.setDataset(data);  
 data.add(inst);             
                  }
                    System.out.println("close reader");     
                  reader.close();

在这里,当我使用data.add(inst)时,“close reader”不会被打印出来,我经常得到gc\u错误,所以我搜索了联机帮助,有人提到要使用inst.setdataset(data),但是在我这样做之后,Map器就不工作了,它直接被减少了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题