== Parsed Logical Plan == WriteToDataSourceV2 org.apache.spark.sql.execution.streaming.sources.MicroBatchWrite@502d8e8d +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, url#158, responsecode#166, split(logs#5, ,, -1)[6] AS bytes#175] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, url#158, split(logs#5, ,, -1)[5] AS responsecode#166] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, split(logs#5, ,, -1)[4] AS url#158] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, split(logs#5, ,, -1)[3] AS method#151] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, split(logs#5, ,, -1)[2] AS time#145] +- Project [logs#5, timestamp#1-T3000ms, idx#136, split(logs#5, ,, -1)[1] AS hostname#140] +- Project [logs#5, timestamp#1-T3000ms, split(logs#5, ,, -1)[0] AS idx#136] +- EventTimeWatermark timestamp#1: timestamp, 3 seconds +- Project [logs#5, timestamp#1] +- Generate explode(split(value#0, , -1)), false, [logs#5] +- StreamingDataSourceV2Relation [value#0, timestamp#1], org.apache.spark.sql.execution.streaming.sources.TextSocketTable$$anon$1@3ad9e40f, TextSocketV2[host: stream-emulator.data-science-tools.svc.cluster.local, port: 5551], 7, 8 == Analyzed Logical Plan == WriteToDataSourceV2 org.apache.spark.sql.execution.streaming.sources.MicroBatchWrite@502d8e8d +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, url#158, responsecode#166, split(logs#5, ,, -1)[6] AS bytes#175] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, url#158, split(logs#5, ,, -1)[5] AS responsecode#166] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, method#151, split(logs#5, ,, -1)[4] AS url#158] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, time#145, split(logs#5, ,, -1)[3] AS method#151] +- Project [logs#5, timestamp#1-T3000ms, idx#136, hostname#140, split(logs#5, ,, -1)[2] AS time#145] +- Project [logs#5, timestamp#1-T3000ms, idx#136, split(logs#5, ,, -1)[1] AS hostname#140] +- Project [logs#5, timestamp#1-T3000ms, split(logs#5, ,, -1)[0] AS idx#136] +- EventTimeWatermark timestamp#1: timestamp, 3 seconds +- Project [logs#5, timestamp#1] +- Generate explode(split(value#0, , -1)), false, [logs#5] +- StreamingDataSourceV2Relation [value#0, timestamp#1], org.apache.spark.sql.execution.streaming.sources.TextSocketTable$$anon$1@3ad9e40f, TextSocketV2[host: stream-emulator.data-science-tools.svc.cluster.local, port: 5551], 7, 8 == Optimized Logical Plan == WriteToDataSourceV2 org.apache.spark.sql.execution.streaming.sources.MicroBatchWrite@502d8e8d +- Project [logs#5, timestamp#1-T3000ms, split(logs#5, ,, -1)[0] AS idx#136, split(logs#5, ,, -1)[1] AS hostname#140, split(logs#5, ,, -1)[2] AS time#145, split(logs#5, ,, -1)[3] AS method#151, split(logs#5, ,, -1)[4] AS url#158, split(logs#5, ,, -1)[5] AS responsecode#166, split(logs#5, ,, -1)[6] AS bytes#175] +- EventTimeWatermark timestamp#1: timestamp, 3 seconds +- Project [logs#5, timestamp#1] +- Generate explode(split(value#0, , -1)), [0], false, [logs#5] +- StreamingDataSourceV2Relation [value#0, timestamp#1], org.apache.spark.sql.execution.streaming.sources.TextSocketTable$$anon$1@3ad9e40f, TextSocketV2[host: stream-emulator.data-science-tools.svc.cluster.local, port: 5551], 7, 8 == Physical Plan == WriteToDataSourceV2 org.apache.spark.sql.execution.streaming.sources.MicroBatchWrite@502d8e8d +- *(3) Project [logs#5, timestamp#1-T3000ms, split(logs#5, ,, -1)[0] AS idx#136, split(logs#5, ,, -1)[1] AS hostname#140, split(logs#5, ,, -1)[2] AS time#145, split(logs#5, ,, -1)[3] AS method#151, split(logs#5, ,, -1)[4] AS url#158, split(logs#5, ,, -1)[5] AS responsecode#166, split(logs#5, ,, -1)[6] AS bytes#175] +- EventTimeWatermark timestamp#1: timestamp, 3 seconds +- *(2) Project [logs#5, timestamp#1] +- Generate explode(split(value#0, , -1)), [timestamp#1], false, [logs#5] +- *(1) Project [value#0, timestamp#1] +- MicroBatchScan[value#0, timestamp#1] class org.apache.spark.sql.execution.streaming.sources.TextSocketTable$$anon$1