web-dev-qa-db-fra.com

VUE LATÉRALE EXPLODE in presto

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}}
8
rkj

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);
25
Dain Sundstrom