Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fungsi hash hive menghasilkan 0,null dan 1, mengapa?

Fungsi hash mengembalikan 0 hanya jika semua argumen yang diberikan kosong atau nol.

Jika Anda familiar dengan Java maka Anda dapat memeriksa implementasi fungsi hash .

Fungsi hash secara internal menggunakan ObjectInspectorUtils.hashCode untuk mendapatkan kode hash untuk bidang yang disediakan, gunakan cuplikan kode java di bawah ini untuk menguji masalah ini secara manual:

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

Ketergantungan Maven diperlukan untuk menjalankan program di atas:

<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. MySQL Tambahkan Kendala Unik

  2. Bagaimana cara mengubah zona waktu MySQL dalam koneksi database menggunakan Java?

  3. Query Mysql dengan variabel mysql tidak berfungsi di Zend Framework 1

  4. Mengapa Rails mengabaikan Rollback dalam transaksi bersarang (semu)?

  5. MySQL Pilih dari kategori di tabel y di mana Hitungan (produk kategori dari tabel lain) lebih besar dari nol