java - "Exception in thread "主要 "java.lang.NullPointerException"- CSV 到 Arff

标签 java csv nullpointerexception weka arff

我正在尝试按照本指南将 CSV 文件转换为 Arff 格式。 (链接如下)

这是出于练习目的,我只是想知道如何在构建更大的数据集之前正确转换它。

CSV 文件

Name,points,rebounds,steals,assists
Lebron James,17,10,1,7
Lebron James,29,5,2,8
Lebron James,30,4,0,8
Lebron James,24,4,1,3
Lebron James,25,1,0,11
Lebron James,22,4,2,9
Lebron James,21,3,2,2
Lebron James,27,7,1,14
Lebron James,41,5,0,5
Lebron James,35,2,2,2
Lebron James,18,4,3,4

Java 文件 - 处理此站点教程 Weka Turorial

import weka.core.Instances;
import weka.core.converters.CSVLoader;
import weka.core.converters.ArffSaver;

import java.io.File;

public class arffBBALL{
    public static void main(String[] args) throws Exception{



        //load CSV
        CSVLoader loader = new CSVLoader();
        loader.setSource(new File("Users/myname/Desktop/bball.csv"));
        Instances data = loader.getDataSet();


        //save ARFF
        ArffSaver saver = new ArffSaver();
        saver.setInstances(data); // set the dataset we want to convert
        // save as ARFF
        saver.setFile(new File("Users/myname/Desktop/nbball.arff"));
        saver.writeBatch();
    }
}

这是我在 Java 中遇到的错误

Exception in thread "main" java.lang.NullPointerException
    at java.io.StreamTokenizer.<init>(StreamTokenizer.java:248)
    at weka.core.converters.CSVLoader.getStructure(CSVLoader.java:593)
    at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:628)
    at arffBBALL.main(arffBBALL.java:15)

我将 Weka.jar 文件加载到引用的库中,但我似乎无法将 CSV 文件转换为 arff。

我的 Mac 桌面上有 CSV 文件。

如有任何帮助,我们将不胜感激。谢谢

编辑:添加绝对路径后的最新错误:

---Registering Weka Editors---
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
Exception in thread "main" java.io.IOException: wrong number of values. Read 2, expected 1, read Token[EOL], line 4
    at weka.core.converters.ConverterUtils.errms(ConverterUtils.java:912)
    at weka.core.converters.CSVLoader.getInstance(CSVLoader.java:824)
    at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:646)
    at arffBBALL.main(arffBBALL.java:15)

最佳答案

用这个函数测试看看问题是否出在文件上。 http://docs.oracle.com/javase/7/docs/api/java/io/File.html#exists() http://docs.oracle.com/javase/7/docs/api/java/io/File.html#canRead()

您似乎遇到了文件问题。尝试检查路径..

关于java - "Exception in thread "主要 "java.lang.NullPointerException"- CSV 到 Arff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751739/

相关文章:

使用递归 Hashmap 的 Java 泛型类型安全警告

java - j2me "turn-based"游戏的游戏循环

java - MaterialDatePicker,选择结束日期后应用程序崩溃

jboss - 重新部署后注入(inject)的@EJB 引用为空

java - 验证 mongodb 的 java 输入

python - 如何使用python将带有unicode的dict转换为中文字符

python - 使用 python 在 CSV 文件中搜索字符串并写入结果

Python 2.7 和 Pandas 将 2 个 csv 文件与外汇数据合并

java - Android 开发初学者指南 [第 5 章] 中的 NullPointerException

java - @Autowired 和@SpringBootTest 应该用于单元测试吗?