== Parsed Logical Plan ==
GlobalLimit 21
+- LocalLimit 21
+- Project [cast(logs#81 as string) AS logs#108, cast(processing_time#82-T3000ms as string) AS processing_time#116, cast(idx#83 as string) AS idx#109, cast(hostname#84 as string) AS hostname#110, cast(time#85 as string) AS time#111, cast(method#86 as string) AS method#112, cast(url#87 as string) AS url#113, cast(responsecode#88 as string) AS responsecode#114, cast(bytes#89 as string) AS bytes#115]
+- LocalRelation <empty>, [logs#81, processing_time#82-T3000ms, idx#83, hostname#84, time#85, method#86, url#87, responsecode#88, bytes#89]
== Analyzed Logical Plan ==
logs: string, processing_time: string, idx: string, hostname: string, time: string, method: string, url: string, responsecode: string, bytes: string
GlobalLimit 21
+- LocalLimit 21
+- Project [cast(logs#81 as string) AS logs#108, cast(processing_time#82-T3000ms as string) AS processing_time#116, cast(idx#83 as string) AS idx#109, cast(hostname#84 as string) AS hostname#110, cast(time#85 as string) AS time#111, cast(method#86 as string) AS method#112, cast(url#87 as string) AS url#113, cast(responsecode#88 as string) AS responsecode#114, cast(bytes#89 as string) AS bytes#115]
+- LocalRelation <empty>, [logs#81, processing_time#82-T3000ms, idx#83, hostname#84, time#85, method#86, url#87, responsecode#88, bytes#89]
== Optimized Logical Plan ==
LocalRelation <empty>, [logs#108, processing_time#116, idx#109, hostname#110, time#111, method#112, url#113, responsecode#114, bytes#115]
== Physical Plan ==
LocalTableScan <empty>, [logs#108, processing_time#116, idx#109, hostname#110, time#111, method#112, url#113, responsecode#114, bytes#115]