Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja skrótu Hive dająca 0,null i 1, dlaczego?

Funkcja haszująca zwraca 0 tylko wtedy, gdy wszystkie podane argumenty są puste lub puste.

Jeśli znasz Javę, możesz sprawdzić implementację funkcja skrótu .

Funkcja haszująca wewnętrznie używa ObjectInspectorUtils.hashCode aby uzyskać hashCode dla podanych pól, użyj poniższego fragmentu kodu java, aby ręcznie przetestować ten problem:

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) );
    }
}

Zależności Mavena wymagane do uruchomienia powyższego programu:

<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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wyjście php z mysql do tabeli html

  2. mySQL:Łączenie trzech tabel - jak?

  3. SQL SELECT z relacją m:n

  4. Błąd sekwencjonowania:defineCall niezdefiniowane w Index.js

  5. Czy istnieje sposób na pobranie identyfikatora autoincrement z przygotowanej instrukcji?