Archivo de parquet Tipo lógico Mapeo -- thrift campo con parquet camp Relacionados El problema

Parquet file logical type mapping


2
vote

problema

Español

En los archivos de parquet, los datos se almacenan en un pequeño número de tipos primitivos. Sin embargo, hay el concepto de tipos lógicos de orden superior (aka tipos convertidos). Por ejemplo, un decimal (10,2) se puede almacenar como una matriz de bytes de longitud 3, es decir, un entero donde la división por 100 al decimal de precisión fija se define por el esquema.

Mi pregunta es esta: ¿Dónde hay un mapa del tipo lógico numérico a los identificadores, como el decimal y cómo se especifican aún más? Por lo que entiendo, el bloqueo de propuestas de segunda mano se ve así: thrift_spec = (0, type(I32), type_length(I32), repetition_type(I32), name(string), num_children(I32), converted_type(I32), ... ) Es el significado de la última variable que estoy después, y qué información adicional puede seguir en la especificación.

Original en ingles

In parquet files, data is stored in a small number of primitive types. There is, however, the concept of higher-order logical types (aka converted types). For example, a DECIMAL(10,2) may be stored as a byte array of length 3, i.e., an integer where the division by 100 to fixed-precision decimal is defined by the schema.

My question is this: where is there a map from numerical logical type to identifiers such as DECIMAL, and how are they further specified? As far as I understand, the schema thrift spec block looks like this: thrift_spec = (0, type(I32), type_length(I32), repetition_type(I32), name(string), num_children(I32), converted_type(I32), ... ) It is the meaning of the last variable I am after, and what further information may follow in the spec.

     
 
 

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Aquí se da una breve descripción, así que tenía razón sobre los decimales. Cómo se utilizan exactamente los otros siguen siendo algo opacos.

https://github.com/ Parquet / Formato de parquet / Blob / Master / SRC / Thrift / Pardet.Trift # L65

Específicamente, la escala para multiplicarse es 10 ** b, donde B es el siguiente entero de 32 bits en el bloque de especificaciones.

 

A brief description is given here, so I was right about DECIMALs. How exactly the other are used remains somewhat opaque.

https://github.com/Parquet/parquet-format/blob/master/src/thrift/parquet.thrift#L65

Specifically, the scale to multiply by is 10**b where b is the next 32-bit integer in the spec block.

 
 

Relacionados problema

0  Conectando Pyarrow con libhdfs3  ( Connecting pyarrow with libhdfs3 ) 
Estoy tratando de conectarme a un clúster de Hadoop a través de los pyarrows ' HdfsClient / hdfs.connect() . I Noté la función hdfs35 , que devuelve Fals...

1  Guarda el archivo de parquet de Lambda a S3 con Java  ( Save parquet file from lambda to s3 with java ) 
Tengo un caso de uso en el que necesito guardar un archivo de parquet de Lambda a S3. Necesito almacenar los eventos activados en la función Lambda en el modo...

2  CUESTIONES DE SPARZAMIENTO QUE LEYE ARCHIVOS DE PARQUTOS  ( Spark issues reading parquet files ) 
Tengo 2 archivos de piezas de parquet part-00043-0bfd7e28-6469-4849-8692-e625c25485e2-c000.snappy.parquet (es parte del archivo desde 2017 14 de noviembre d...

0  ¿Cuál es la diferencia entre la estructura de datos creada con SPRIKR y FrameFrame creado usando SparklyR?  ( What is difference between dataframe created using sparkr and dataframe created ) 
Estoy leyendo un archivo de parquet en Azure Datablicks: Usando SBOPR & GT; leer.Parquet () Usando SparklyR & GT; Spark_read_Parquet () Tanto los frágenes de ...

0  Optimizando archivos de parquet en Pyspark  ( Optimizing parquet files in pyspark ) 
Tengo un gran trabajo computacional en Pyspark que puede emitir un formato de parquet razonablemente rápidamente, pero genera miles de archivos de 3 MB a trav...

1  Hive Llap no funciona con formato de parquet  ( Hive llap doesnt work with parquet format ) 
Después de Buscando fuera LLAP , Realmente quiero usarlo. Comencé a Azure HDinsight Cluster con Llap habilitado. Sin embargo, no parece funcionar mejor qu...

10  Parquet de Apache Spark: No se puede construir un grupo vacío  ( Apache spark parquet cannot build an empty group ) 
Yo uso Apache Spark 2.1.1 (usado 2.1.0 y fue igual, cambió hoy). Tengo un conjunto de datos: root |-- muons: array (nullable = true) | |-- element: stru...

0  Excepción NOSUCHMETHOD arrojada cuando construye AvroparquetWriter en Java Spark  ( Nosuchmethod exception thrown when build avroparquetwriter in java spark ) 
Estoy usando Java y Spark y tengo el siguiente código todo id - user_id - name - description - reminder - reminder_date111 Sin embargo, recibí un error ...

0  Cómo controlar el número de mapeadores cuando se usa el formato de parquet  ( How to control the number of mappers when using parquet format ) 
Estoy usando formato de parquet para mis tablas de colmena. Veo que el almacenamiento para esas tablas se mejora considerablemente. Cuando estoy ejecutando al...

2  SCALA SPARK - Sobrescribir el archivo de parquet Error al eliminar archivo o dir  ( Scala spark overwrite parquet file failed to delete file or dir ) 
Estoy tratando de crear archivos de parquet durante varios días a nivel local. La primera vez que ejecuto el código, todo funciona bien. La segunda vez que no...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos