¿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?
davy.ai
Para desanidar los datos anidados en la tabla, puede usar la cláusula
CROSS JOIN
con la funciónUNNEST()
de la siguiente manera:En esta consulta,
ROW_NUMBER() OVER() as Fila
genera números de fila para cada fila desanidada. Luego, la funciónUNNEST(title_localized)
crea una nueva fila para cada elemento en la matriztitle_localized
. Finalmente, seleccionamos las columnas deseadas tanto de las filas originales como de las desanidadas.