You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Sandeep Katta (JIRA)" <ji...@apache.org> on 2019/03/06 10:12:00 UTC

[jira] [Commented] (SPARK-26330) Duplicate query execution events generated for SQL commands

    [ https://issues.apache.org/jira/browse/SPARK-26330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16785466#comment-16785466 ] 

Sandeep Katta commented on SPARK-26330:
---------------------------------------

[~vanzin] I will work on this issue, and will raise the PR if required

> Duplicate query execution events generated for SQL commands
> -----------------------------------------------------------
>
>                 Key: SPARK-26330
>                 URL: https://issues.apache.org/jira/browse/SPARK-26330
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.4.0
>            Reporter: Marcelo Vanzin
>            Priority: Minor
>
> Consider the following code:
> {code:java}
> spark.sql("create table foo (bar int)").show()
> {code}
> The command is executed eagerly (i.e. before {{show()}} is called) and generates a query execution event. But when you call {{show()}}, a duplicate event is generated, even though Spark does not execute anything at that point.
> This can be a little more misleading when you do something like a CTAS, since the duplicate events may cause listeners to think there were multiple inserts when that's not true.
> A fuller example that shows this (and you can look at the output that both inputs to the listener are the same):
> {code:java}
> import org.apache.spark.sql.execution.QueryExecution
> import org.apache.spark.sql.util.QueryExecutionListener
> val lsnr = new QueryExecutionListener() {
>   override def onSuccess(funcName: String, qe: QueryExecution, durationNs: Long): Unit = {
>     println(s"on success: $funcName -> ${qe.analyzed}")
>   }
>   override def onFailure(funcName: String, qe: QueryExecution, exception: Exception): Unit = {
>     println(s"on failure: $funcName -> ${qe.analyzed}")
>   }
> }
> spark.sessionState.listenerManager.register(lsnr)
> spark.sql("drop table if exists test")
> val df = spark.sql("create table test(i int)")
> df.show()
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org