Details
-
Sub-task
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.0.0
-
None
Description
Currently when called `explain()` on streaming dataset, it will only get the parsed and analyzed logical plan, exceptions for optimized logical plan and physical plan, like below:
scala> res0.explain(true) == Parsed Logical Plan == FileSource[file:///tmp/input] == Analyzed Logical Plan == value: string FileSource[file:///tmp/input] == Optimized Logical Plan == org.apache.spark.sql.AnalysisException: Queries with streaming sources must be executed with write.startStream(); == Physical Plan == org.apache.spark.sql.AnalysisException: Queries with streaming sources must be executed with write.startStream();
The reason is that structure streaming dynamically materialize the plan in the run-time.
So here we should figure out a way to properly get the streaming plan.