This is an automated email from the ASF dual-hosted git repository.
gengliang pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new b1976ac [SPARK-31004][WEBUI][SS] Show message for empty Streaming
Queries instead of empty timelines and histograms
b1976ac is described below
commit b1976ac43ce8cdda58916c300fd5b01677fd5973
Author: Kousuke Saruta <[email protected]>
AuthorDate: Fri Mar 13 12:58:49 2020 -0700
[SPARK-31004][WEBUI][SS] Show message for empty Streaming Queries instead
of empty timelines and histograms
### What changes were proposed in this pull request?
`StreamingQueryStatisticsPage` shows a message "No visualization
information available because there is no batches" instead of showing empty
timelines and histograms for empty streaming queries.
[Before this change applied]

[After this change applied]

### Why are the changes needed?
Empty charts are ugly and a little bit confusing.
It's better to clearly say "No visualization information available".
Also, this change fixes a JS error shown in the capture above.
This error occurs because `drawTimeline` in `streaming-page.js` is called
even though `formattedDate` will be `undefined` for empty streaming queries.
### Does this PR introduce any user-facing change?
Yes. screen captures are shown above.
### How was this patch tested?
Manually tested by creating an empty streaming query like as follows.
```
val df =
spark.readStream.format("socket").options(Map("host"->"<non-existing
hostname>", "port"->"...")).load
df.writeStream.format("console").start
```
This streaming query will fail because of `non-existing hostname` and has
no batches.
Closes #27755 from sarutak/fix-for-empty-batches.
Authored-by: Kousuke Saruta <[email protected]>
Signed-off-by: Gengliang Wang <[email protected]>
(cherry picked from commit 680981587d3219aea7caadb56df6519c8b3acb7f)
Signed-off-by: Gengliang Wang <[email protected]>
---
.../sql/streaming/ui/StreamingQueryStatisticsPage.scala | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git
a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala
b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala
index 65052d9..227e5e5 100644
---
a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala
+++
b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala
@@ -229,14 +229,15 @@ private[ui] class StreamingQueryStatisticsPage(parent:
StreamingQueryTab)
0L,
"ms")
- val table =
- // scalastyle:off
+ val table = if (query.lastProgress != null) {
+ // scalastyle:off
<table id="stat-table" class="table table-bordered" style="width: auto">
<thead>
<tr>
<th style="width: 160px;"></th>
<th style="width: 492px;">Timelines</th>
- <th style="width: 350px;">Histograms</th></tr>
+ <th style="width: 350px;">Histograms</th>
+ </tr>
</thead>
<tbody>
<tr>
@@ -285,7 +286,12 @@ private[ui] class StreamingQueryStatisticsPage(parent:
StreamingQueryTab)
</tr>
</tbody>
</table>
- // scalastyle:on
+ } else {
+ <div id="empty-streaming-query-message">
+ <b>No visualization information available.</b>
+ </div>
+ // scalastyle:on
+ }
generateTimeToValues(operationDurationData) ++
generateFormattedTimeTipStrings(batchToTimestamps) ++
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]