ハッシュ関数は、指定されたすべての引数が空白またはnullの場合にのみ0を返します。
Javaに精通している場合は、hash functionの実装をチェックすることができます。
ハッシュ関数は内部的に供給フィールドのハッシュコードを取得するためにObjectInspectorUtils.hashCode
を使用して、手動でこの問題をテストするためのJavaコードスニペットの下に使用します。プログラム上で実行するために必要な
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));
}
}
Mavenの依存関係:
<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>
を
多分あなたはそれをしたくないハッシュの例を提供することができます。その質問に答えるのは難しいだろう。 – gobrewers14