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

h4cxqtbf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(475)

**“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";
new9mtju

new9mtju1#

不要先看变量是否为null,然后做任何你需要做的事情,只要它不是null就做任何你需要做的事情。这样就不需要检查变量是否“完全”等于某个值。它会造成并发症。
为了避免这种情况,请使用if语句来执行上面所述的操作。

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

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

相关问题