java.lang.IllegalArgumentException:无法从空字符串创建路径

时间:2016-04-21 15:04:11

标签: java hadoop

**“Path inputPath = new Path(job.get(KnnDriver.QUERY_DIR_PROPERTY));”**//it  gives  out   error。
    if (inputPath == null)
        throw new UnsupportedOperationException("ERROR: query directory not set");
    job.setInputFormat(NonSplitableTextInputFormat.class);
    NonSplitableTextInputFormat.addInputPath(job, inputPath);
    Path outputPath = new Path(job.get(KnnDriver.RESULT_DIR_PROPERTY));
    FileSystem.get(job).delete(outputPath, true);
    // Change to FileOutputFormat to see output

    job.setOutputFormat(TextOutputFormat.class);
    TextOutputFormat.setOutputPath(job, outputPath);

    KnnDriver.run(job);
}

我在文本中记录了错误。 以下是我在knnDriver中设置的静态常量。

public static final String QUERY_DIR_PROPERTY = "knn.query.dir";
public static final String RESULT_DIR_PROPERTY = "knn.result.dir";
public static final String THRESHOLD_PROPERTY = "knn.sim.threshold";

1 个答案:

答案 0 :(得分:0)

而不是先查看变量是否为空,然后做你需要的任何事情,只要你需要做任何事情,只要它是不是 null。这消除了检查变量是否“完全”等于某事的需要。它会产生并发症。

要避免这种情况,请使用执行上述操作的if语句。

if(inputPath != null){
//Whatever you want
}else{
//However you want to catch it
}

基本上,你不再寻找黑天鹅,只是检查没有。这种方法的问题要小得多,应该用你的方式来代替你。