Hàm băm chỉ trả về 0 khi tất cả các đối số được cung cấp đều trống hoặc rỗng.
Nếu bạn đã quen với Java thì bạn có thể kiểm tra việc triển khai hàm băm .
Hàm băm sử dụng nội bộ ObjectInspectorUtils.hashCode
để lấy mã băm cho các trường được cung cấp, hãy sử dụng đoạn mã java bên dưới để kiểm tra thủ công vấn đề này:
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
import org.apache.hadoop.io.Text;
public class TestHash
{
public static void main( String[] args )
{
System.out.println( ObjectInspectorUtils.hashCode(null,PrimitiveObjectInspectorFactory.javaStringObjectInspector) );
System.out.println( ObjectInspectorUtils.hashCode(new Text(""),PrimitiveObjectInspectorFactory.javaStringObjectInspector) );
}
}
Yêu cầu phụ thuộc Maven để chạy chương trình trên:
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.2</version>
</dependency>