nic*_*ine 5 java hive classpath user-defined-functions
我正在尝试编译这个UDF:
package com.dataminelab.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
import java.security.*;
/**
* Calculate md5 of the string
*/
public final class Md5 extends UDF {
public Text evaluate(final Text s) {
if (s == null) {
return null;
}
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(s.toString().getBytes());
byte[] md5hash = md.digest();
StringBuilder builder = new StringBuilder();
for (byte b : md5hash) {
builder.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
}
return new Text(builder.toString());
} catch (NoSuchAlgorithmException nsae) {
System.out.println("Cannot find digest algorithm");
System.exit(1);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
尝试编译:
javac Md5.java
Run Code Online (Sandbox Code Playgroud)
但我得到:
Md5.java:2: package org.apache.hadoop.hive.ql.exec does not exist
import org.apache.hadoop.hive.ql.exec.UDF;
^
Md5.java:3: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.Text;
Run Code Online (Sandbox Code Playgroud)
我假设这些是在某个地方的jar文件中但是我不确定hadoop在哪里安装它们所以我不能将它们添加到我的类路径中.有谁知道默认位置或如何找出?
| 归档时间: |
|
| 查看次数: |
11989 次 |
| 最近记录: |