Nouveau sur presto, n'importe quel pointeur comment puis-je utiliser LATERAL VIEW EXPLODE dans presto pour le tableau ci-dessous.
J'ai besoin de filtrer les noms dans ma requête presto
CREATE EXTERNAL TABLE `id`(
`id` string,
`names` map<string,map<string,string>>,
`tags` map<string,map<string,string>>)
ROW FORMAT SERDE
'org.Apache.hadoop.Hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.Apache.hadoop.Hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.Apache.hadoop.Hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://test'
;
exemple names
valeur:
{3081={short=Abbazia 81427 - Milan}, 2057={short=Abbazia 81427 - Milan}, 1033={short=Abbazia 81427 - Milan}, 4105={short=Abbazia 81427 - Milan}, 5129={short=Abbazia 81427 - Milan}}
De la documentation: https://prestosql.io/docs/current/migration/from-Hive.html
Presto prend en charge UNNEST pour étendre les tableaux et les cartes. Utilisez UNNEST au lieu d'exploser LATERAL VIEW ().
Requête de ruche:
SELECT student, score
FROM tests
LATERAL VIEW explode(scores) t AS score;
Requête Presto:
SELECT student, score
FROM tests
CROSS JOIN UNNEST(scores) AS t (score);