== Parsed Logical Plan ==
GlobalLimit 21
+- LocalLimit 21
+- Project [cast(logs#137 as string) AS logs#164, cast(processing_time#138-T3000ms as string) AS processing_time#172, cast(idx#139 as string) AS idx#165, cast(hostname#140 as string) AS hostname#166, cast(time#141 as string) AS time#167, cast(method#142 as string) AS method#168, cast(url#143 as string) AS url#169, cast(responsecode#144 as string) AS responsecode#170, cast(bytes#145 as string) AS bytes#171]
+- LocalRelation [logs#137, processing_time#138-T3000ms, idx#139, hostname#140, time#141, method#142, url#143, responsecode#144, bytes#145]
== 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#137 as string) AS logs#164, cast(processing_time#138-T3000ms as string) AS processing_time#172, cast(idx#139 as string) AS idx#165, cast(hostname#140 as string) AS hostname#166, cast(time#141 as string) AS time#167, cast(method#142 as string) AS method#168, cast(url#143 as string) AS url#169, cast(responsecode#144 as string) AS responsecode#170, cast(bytes#145 as string) AS bytes#171]
+- LocalRelation [logs#137, processing_time#138-T3000ms, idx#139, hostname#140, time#141, method#142, url#143, responsecode#144, bytes#145]
== Optimized Logical Plan ==
LocalRelation [logs#164, processing_time#172, idx#165, hostname#166, time#167, method#168, url#169, responsecode#170, bytes#171]
== Physical Plan ==
LocalTableScan [logs#164, processing_time#172, idx#165, hostname#166, time#167, method#168, url#169, responsecode#170, bytes#171]