public class DbndSparkQueryExecutionListener
extends java.lang.Object
implements org.apache.spark.sql.util.QueryExecutionListener
| Constructor and Description |
|---|
DbndSparkQueryExecutionListener() |
DbndSparkQueryExecutionListener(DbndWrapper dbnd) |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.String |
exctractPath(java.lang.String path)
Extract data path from spark query plan.
|
protected java.util.Optional<org.apache.spark.sql.execution.SparkPlan> |
extractChildFromShuffle(org.apache.spark.sql.execution.SparkPlan shuffleQuery)
Shuffle queries was introduced in Spark 3 and doesn't have "children" nodes.
|
protected java.util.Optional<org.apache.spark.sql.execution.SparkPlan> |
extractFinalFromAdaptive(org.apache.spark.sql.execution.SparkPlan adaptivePlan)
Adaptive plans was introduced in Spark 2.4.8+ and turned on by default on some configurations.
|
protected java.util.List<org.apache.spark.sql.execution.SparkPlan> |
getAllChildren(org.apache.spark.sql.execution.SparkPlan root)
DFS across spark plan nodes.
|
protected java.lang.String |
getPlanVerboseString(org.apache.spark.sql.catalyst.plans.logical.LogicalPlan plan)
This is workaround for Spark 3.
|
protected boolean |
isAdaptivePlan(java.lang.Object plan) |
protected void |
log(java.lang.String path,
DatasetOperationType operationType,
org.apache.spark.sql.types.StructType datasetSchema,
long rows) |
void |
onFailure(java.lang.String funcName,
org.apache.spark.sql.execution.QueryExecution qe,
java.lang.Exception exception) |
void |
onSuccess(java.lang.String funcName,
org.apache.spark.sql.execution.QueryExecution qe,
long durationNs) |
protected boolean |
submitReadOps(org.apache.spark.sql.execution.SparkPlan executedPlan) |
public DbndSparkQueryExecutionListener(DbndWrapper dbnd)
public DbndSparkQueryExecutionListener()
public void onSuccess(java.lang.String funcName,
org.apache.spark.sql.execution.QueryExecution qe,
long durationNs)
onSuccess in interface org.apache.spark.sql.util.QueryExecutionListenerprotected boolean submitReadOps(org.apache.spark.sql.execution.SparkPlan executedPlan)
protected boolean isAdaptivePlan(java.lang.Object plan)
protected java.lang.String getPlanVerboseString(org.apache.spark.sql.catalyst.plans.logical.LogicalPlan plan)
plan - protected java.util.Optional<org.apache.spark.sql.execution.SparkPlan> extractFinalFromAdaptive(org.apache.spark.sql.execution.SparkPlan adaptivePlan)
adaptivePlan - protected void log(java.lang.String path,
DatasetOperationType operationType,
org.apache.spark.sql.types.StructType datasetSchema,
long rows)
protected java.lang.String exctractPath(java.lang.String path)
path - protected java.util.List<org.apache.spark.sql.execution.SparkPlan> getAllChildren(org.apache.spark.sql.execution.SparkPlan root)
root - protected java.util.Optional<org.apache.spark.sql.execution.SparkPlan> extractChildFromShuffle(org.apache.spark.sql.execution.SparkPlan shuffleQuery)
shuffleQuery - public void onFailure(java.lang.String funcName,
org.apache.spark.sql.execution.QueryExecution qe,
java.lang.Exception exception)
onFailure in interface org.apache.spark.sql.util.QueryExecutionListener