有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

**“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) 个答案

  1. # 1 楼答案

    与其先查看变量是否为null,然后做任何需要做的事情,不如做任何需要做的事情,只要它不为null即可。这样就不需要检查变量是否“完全”等于某个值。这会造成并发症

    为了避免这种情况,请使用if语句来实现上面所述的功能

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

    基本上,你不再寻找黑天鹅了,只是检查一下没有黑天鹅。这种方法的问题要小得多,应该使用,而不是像你那样