Mi comprensión de la siguiente declaración es que si en blanco o la cadena vacía se inserta en el subárbol de la columna, será considerado como nulo.

TBLPROPERTIES('serialization.null.format'=''

Para probar la funcionalidad que he creado una tabla y insertted » hasta el campo 3. Cuando me consulta por valores nulos en el campo3, no hay filas con que criterios.

Es mi entendimiento de decisiones en blanco de la cadena null correcto??

CREATE TABLE CDR
(
field1                 string,
field2                 string,
field3                 string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
**TBLPROPERTIES('serialization.null.format'='');**

insert overwrite table emmtest.cdr select **field1,field2,''** from emmtest.cdr_non_orc;

select * from emmtest.cdr where **field3 is null;**

La última instrucción no ha regresado a las filas. Pero estoy esperando a todas las filas a ser devueltos ya que no hay cadena en blanco en el campo3.

  • Una cadena vacía nunca es igual a null. field3='' volverá a esas filas.
  • ¿Cómo puedo hacer que las cadenas vacías a null en la Colmena? Lo que hace este parámetro significa? – TBLPROPERTIES(‘la serialización.null.formato»=»)
InformationsquelleAutor AKC | 2017-04-06

1 Comentario

  1. 5

    TBLPROPERTIES('serialization.null.format'='') significa lo siguiente:

    • Un campo vacío en los archivos de datos serán tratados como NULL cuando se consulta la tabla
    • Al insertar las filas de la tabla, los valores NULL se escribe en los archivos de datos como campos vacíos

    Que usted está haciendo algo más –

    Se inserta una cadena vacía en una tabla a partir de una consulta.

    Se trata de «como es» – una cadena vacía.

    Demo

    bash

    hdfs dfs -mkdir /user/hive/warehouse/mytable
    echo Hello,,World | hdfs dfs -put - /user/hive/warehouse/mytable/data.txt
    

    colmena

    create table mytable (s1 string,s2 string,s3 string) 
    row format delimited 
    fields terminated by ','
    ;
    

    hive> select * from mytable;
    OK
    s1  s2  s3
    Hello       World
    

    hive> alter table mytable set tblproperties ('serialization.null.format'='');
    OK
    

    hive> select * from mytable;
    OK
    s1  s2  s3
    Hello   NULL    World
    
    • Les voy a mostrar una demo en un minuto.
    • Ver demo……..
    • Gracias…¿Cómo puedo hacer que las cadenas vacías a null en la Colmena?
    • A diferencia de Oracle, otros motores de base de datos, incluidos los de la Colmena, no tratar cadenas vacías como NULL. Sin Embargo, puede utilizar nullif(mycolumn,'') (como la de la Colmena 2.2.0) o case when mycolumn <> '' then mycolumn end
    • Gracias Dudu para aclarar mis dudas.
    • ¿Esta propiedad trabajar en orc tablas así?tengo una tabla de origen en el que me encontré «select * from fuente en donde el género es nulo» y que da resultados. He insertado las filas desde la fuente hasta el destino mediante mencionados consulta como «insert into objetivo de seleccionar * desde la fuente en donde el género es nulo». Pero inserta filas en blanco viene con el género como » y consulta «select * from destino en donde el género es null’ muestra 0 recuento, mientras que ‘select * from destino en el género=» muestra exactamente el mismo cuenta como fuente. Ambas tablas de origen y destino son ORCO. Por favor aclarar.
    • publicar una pregunta con un escenario reproducible. En cualquier caso dudo que serialization.null.format tendrá ningún efecto en cualquier tipo de archivo de otro formato de archivo de texto.

Dejar respuesta

Please enter your comment!
Please enter your name here