es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo extraer datos anidados de BigQuery?

Tengo una tabla en Google Cloud Platform con BigQuery con datos anidados y quiero extraer estos datos en filas únicas.

Row title_localized.text title_localized.language title_localized.truncated publication_date
1 Revêtements en polyuréthane bicomposants stables fr false 20210107
Beständige 2k-pur-beschichtungen de false
Resistant 2k-pur coatings en false
2 Revêtements en polyuréthane bicomposants stables fr false 20210507
Resistant 2k-pur coatings en false
Beständige 2k-pur-beschichtungen de false

y quiero convertir esta tabla en una forma no anidada.

Row title_localized.text title_localized.language title_localized.truncated publication_date
1 Revêtements en polyuréthane bicomposants stables fr false 20210107
2 Beständige 2k-pur-beschichtungen de false 20210107
3 Resistant 2k-pur coatings en false 20210107
4 Revêtements en polyuréthane bicomposants stables fr false 20210507
5 Resistant 2k-pur coatings en false 20210507
6 Beständige 2k-pur-beschichtungen de false 20210507

Intenté esto pero no funciona:

SELECT
title_localized,
publication_date
FROM
patents-public-data.patents.publications,
UNNEST(title_localized) as test

¿Alguna idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para desanidar los datos anidados en la tabla, puede usar la cláusula CROSS JOIN con la función UNNEST() de la siguiente manera:

    SELECT
        ROW_NUMBER() OVER() as Fila,
        title_localized.text,
        title_localized.language,
        title_localized.truncated,
        publication_date
    FROM
        `patents-public-data.patents.publications`,
        UNNEST(title_localized) as title_localized
    

    En esta consulta, ROW_NUMBER() OVER() as Fila genera números de fila para cada fila desanidada. Luego, la función UNNEST(title_localized) crea una nueva fila para cada elemento en la matriz title_localized. Finalmente, seleccionamos las columnas deseadas tanto de las filas originales como de las desanidadas.

Comments are closed.