Estoy tratando de crear la partición para mi Tabla finde para actualizar un valor.

Este es mi muestra de datos

1,Anne,Admin,50000,A
2,Gokul,Admin,50000,B
3,Janet,Sales,60000,A

Quiero actualizar Janet's Departamento de B.

Así que para hacer eso he creado una tabla con el Departamento de la partición.

crear una tabla externa trail (Idempleado Int,Nombre
Cadena,la Designación de la Cadena,Int Sueldo) dividido POR (Departamento de
Cadena) formato de fila campos delimitados por terminado por «,» ubicación
‘/usuario/sreeveni/COLMENA’;

Pero al hacer el comando de arriba.
No hay datos se insertan en el sendero de la tabla.

hive>select * from trail;                               
OK
Time taken: 0.193 seconds

hive>desc trail;                                        
OK
employeeid              int                     None                
firstname               string                  None                
designation             string                  None                
salary                  int                     None                
department              string                  None                

# Partition Information      
# col_name              data_type               comment             

department              string                  None   

Estoy haciendo algo mal?

ACTUALIZACIÓN

Como me sugirió que trató de insertar datos en mi tabla

carga de datos inpath ‘/usuario/aibladmin/COLMENA’ sobrescribir en la tabla de trail
Partición(Departamento);

Pero muestra

ERROR: SemanticException [Error 10096]: Dinámica de la partición de modo estricto
se requiere al menos una partición estática de la columna. A su vez esta fuera del set
la colmena.exec.dinámica.la partición.mode=nonstrict

Después de establecer set hive.exec.dynamic.partition.mode=nonstrict también funcionó bien.

Otra cosa que hacer.

3 Comentarios

  1. 15

    Probar ambos por debajo de propiedades

    SET hive.exec.dynamic.partition = true;
    SET hive.exec.dynamic.partition.mode = nonstrict;
    

    Y durante la escritura de instrucción insert en una tabla con particiones asegúrese de especificar las columnas de partición en la última en la cláusula select. 

    • estoy tratando de insert into select a una tabla de particiones. Los datos sólo se 13k registros. Después de usar la configuración anterior se ejecuta la consulta. pero tengo memoria de ejecutar nuestro tema. Pregunto, para un grupo muy pequeño de datos no debe correr fuera de la memoria.
  2. 2

    Directamente no se puede insertar los datos(Hdfs Archivo) en Particiones de la colmena de la tabla.
    En primer lugar usted necesita para crear una tabla normal, entonces usted va a insertar la tabla de datos en una tabla con particiones.

    set hive.exec.dynamic.partition.mode=strict significa cuando nunca va a llenar la colmena de la tabla debe tener al menos una partición estática de la columna.

    set hive.exec.dynamic.partition.mode=nonstrict En este modo, usted no necesita ninguna partición estática de la columna.

  3. 2

    Tratar el siguiente:

    Empezar por la creación de la tabla:

    create external table test23 (EmployeeID Int,FirstName String,Designation String,Salary Int) PARTITIONED BY (Department String) row format delimited fields terminated by "," location '/user/rocky/HIVE';
    

    Crear un directorio en hdfs con el nombre de la partición :

    $ hadoop fs -mkdir /user/rocky/HIVE/department=50000
    

    Crear un archivo local abc.txt mediante el filtrado de los registros de tener departamento igual a 50000:

    $ cat abc.txt 
    1,Anne,Admin,50000,A
    2,Gokul,Admin,50000,B
    

    Ponerlo en HDFS:

    $ hadoop fs -put /home/yarn/abc.txt /user/rocky/HIVE/department=50000
    

    Ahora modificar la tabla:

    ALTER TABLE test23 ADD PARTITION(department=50000);
    

    Y comprobar el resultado:

    select * from test23 ;
    
    • Por favor ver mis actualizaciones
    • Amablemente ver mi respuesta actualizada

Dejar respuesta

Please enter your comment!
Please enter your name here