**“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条答案
按热度按时间new9mtju1#
不要先看变量是否为null,然后做任何你需要做的事情,只要它不是null就做任何你需要做的事情。这样就不需要检查变量是否“完全”等于某个值。它会造成并发症。
为了避免这种情况,请使用if语句来执行上面所述的操作。
基本上,你不再寻找黑天鹅了,只是检查一下没有黑天鹅。这种方法的问题要小得多,应该用它来代替以前的方法。