== Physical Plan ==
CollectLimit (5)
+- * Project (4)
+- * Generate (3)
+- * Project (2)
+- Scan json (1)
(1) Scan json
Output [2]: [meta#138, results#139]
Batched: false
Location: InMemoryFileIndex [file:/home/jovyan/data/openaq-api-data]
ReadSchema: struct<meta:struct<found:bigint,limit:bigint,name:string,page:bigint,website:string>,results:array<struct<bounds:array<double>,coordinates:struct<latitude:double,longitude:double>,country:struct<code:string,id:bigint,name:string>,datetimeFirst:struct<local:string,utc:string>,datetimeLast:struct<local:string,utc:string>,distance:string,id:bigint,instruments:array<struct<id:bigint,name:string>>,isMobile:boolean,isMonitor:boolean,licenses:string,locality:string,name:string,owner:struct<id:bigint,name:string>,provider:struct<id:bigint,name:string>,sensors:array<struct<id:bigint,name:string,parameter:struct<displayName:string,id:bigint,name:string,units:string>>>,timezone:string>>>
(2) Project [codegen id : 1]
Output [2]: [meta#138.name AS _extract_name#183, results#139.name AS _extract_name#185]
Input [2]: [meta#138, results#139]
(3) Generate [codegen id : 1]
Input [2]: [_extract_name#183, _extract_name#185]
Arguments: explode(_extract_name#185), [_extract_name#183], true, [result#178]
(4) Project [codegen id : 1]
Output [2]: [toprettystring(_extract_name#183, Some(Etc/UTC)) AS src#181, toprettystring(result#178, Some(Etc/UTC)) AS location#182]
Input [2]: [_extract_name#183, result#178]
(5) CollectLimit
Input [2]: [src#181, location#182]
Arguments: 21