m*p 发帖数: 1331 | 1 在看一个hadoop 的 codebase,发现有如下实现, 为啥捕捉到异常之后再把逻辑执行
一遍??是hadoop特有的东西么?
private static double[] parseStringToVector(String line, double[]
row) {
try {
StringTokenizer tokenizer = new StringTokenizer(line
, ",");
int size = tokenizer.countTokens();
if (row == null)
row = new double[size];
int i = 0;
while (tokenizer.hasMoreTokens()) {
String attribute = tokenizer.nextToken();
row[i] = Double.parseDouble(attribute);
i++;
}
return row;
} catch (Exception e) {
StringTokenizer tokenizer = new StringTokenizer(line
, " ");
int size = tokenizer.countTokens();
if (row == null)
row = new double[size];
int i = 0;
while (tokenizer.hasMoreTokens()) {
String attribute = tokenizer.nextToken();
row[i] = Double.parseDouble(attribute);
i++;
}
return row;
}
} | c***d 发帖数: 996 | 2 token不一样阿。。这个跟hadoop没关系吧。 异常捕捉还是在单个mapper的jvm上执行
,然后传递给job tracker的。
line
【在 m*p 的大作中提到】 : 在看一个hadoop 的 codebase,发现有如下实现, 为啥捕捉到异常之后再把逻辑执行 : 一遍??是hadoop特有的东西么? : private static double[] parseStringToVector(String line, double[] : row) { : try { : StringTokenizer tokenizer = new StringTokenizer(line : , ","); : int size = tokenizer.countTokens(); : if (row == null) : row = new double[size];
| a***y 发帖数: 2803 | 3 throw语句呢?
line
【在 m*p 的大作中提到】 : 在看一个hadoop 的 codebase,发现有如下实现, 为啥捕捉到异常之后再把逻辑执行 : 一遍??是hadoop特有的东西么? : private static double[] parseStringToVector(String line, double[] : row) { : try { : StringTokenizer tokenizer = new StringTokenizer(line : , ","); : int size = tokenizer.countTokens(); : if (row == null) : row = new double[size];
| x**n 发帖数: 461 | 4 这是典型的Junior engineer写的stupid code,不应该做为学习的对象。
同时这也反映出这个project 的senior engineers们水平有限,或者team内部运作有问
题。
line
【在 m*p 的大作中提到】 : 在看一个hadoop 的 codebase,发现有如下实现, 为啥捕捉到异常之后再把逻辑执行 : 一遍??是hadoop特有的东西么? : private static double[] parseStringToVector(String line, double[] : row) { : try { : StringTokenizer tokenizer = new StringTokenizer(line : , ","); : int size = tokenizer.countTokens(); : if (row == null) : row = new double[size];
|
|