1
私はおなじみですexplain()
(またWebUI)。最適化の前/後に論理/物理計画のツリー構造のイメージを生成するツールがあるかどうか不思議でした。それはexplain()
によって返された情報です。論理および物理クエリプランを視覚化するために使用するツールは何ですか?
私はおなじみですexplain()
(またWebUI)。最適化の前/後に論理/物理計画のツリー構造のイメージを生成するツールがあるかどうか不思議でした。それはexplain()
によって返された情報です。論理および物理クエリプランを視覚化するために使用するツールは何ですか?
PNGまたはJPGのような画像ですか?自分自身について聞いたことはありませんが、すでに触れたようにWeb UIを使って物理的な計画を見ることができます。
クエリ実行の他の段階はTreeNodeメソッドを使用して(あなたを助けることができる多くの方法の中で)あなたのお気に入りのnumberedTreeStringを利用できます。
scala> println(q.queryExecution.analyzed.numberedTreeString)
00 Range (0, 5, step=1, splits=Some(8))
scala> println(q.queryExecution.executedPlan.numberedTreeString)
00 *Range (0, 5, step=1, splits=8)
あなたはPNGを生成するtoJSON
やprettyJson
を使用してJSONとして出力を保存することができます(しかし、私は自分自身をそれを試してみたことがありません)。
scala> println(q.queryExecution.executedPlan.prettyJson)
[ {
"class" : "org.apache.spark.sql.execution.WholeStageCodegenExec",
"num-children" : 1,
"child" : 0
}, {
"class" : "org.apache.spark.sql.execution.RangeExec",
"num-children" : 0,
"range" : [ {
"class" : "org.apache.spark.sql.catalyst.plans.logical.Range",
"num-children" : 0,
"start" : 0,
"end" : 5,
"step" : 1,
"numSlices" : 8,
"output" : [ [ {
"class" : "org.apache.spark.sql.catalyst.expressions.AttributeReference",
"num-children" : 0,
"name" : "id",
"dataType" : "long",
"nullable" : false,
"metadata" : { },
"exprId" : {
"product-class" : "org.apache.spark.sql.catalyst.expressions.ExprId",
"id" : 0,
"jvmId" : "cb497d01-3b90-42a7-9ebf-ebe85578f763"
},
"isGenerated" : false
} ] ]
} ]
} ]