== Physical Plan ==
CollectLimit (5)
+- * Project (4)
+- * Generate (3)
+- * Project (2)
+- Scan json (1)
(1) Scan json
Output [2]: [meta#648, results#649]
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#648.name AS _extract_name#681, results#649]
Input [2]: [meta#648, results#649]
(3) Generate [codegen id : 1]
Input [2]: [_extract_name#681, results#649]
Arguments: explode(results#649), [_extract_name#681], true, [result#677]
(4) Project [codegen id : 1]
Output [4]: [_extract_name#681 AS src#673, result#677.name AS location_name#674, result#677.timezone AS location_timezone#675, substring_index(input_file_name(), /, -1) AS file_name#676]
Input [2]: [_extract_name#681, result#677]
(5) CollectLimit
Input [4]: [src#673, location_name#674, location_timezone#675, file_name#676]
Arguments: 1000