テーブル名からParquetデータまでの独自のカスタム対応でSpark SQLクエリを実行する必要があります。 sqlContext.read.parquet
で寄木細工のデータを読み込み、DataFramesをdf.registerTempTable
に登録することは、私のユースケースではカットされません。なぜなら、これらの呼び出しはSQLクエリの前に実行する必要があるからです。テーブル名をParquetに即座に解決する方法はありますか?
registerTempTable
を使用するのではなく、私自身のロジックを使用してテーブル名を解決するAnalyzer
を書こうとしています。しかし、UnresolvedRelation
を寄木細工データを表すLogicalPlan
に解決できる必要がありますが、sqlContext.read.parquet
はLogicalPlan
ではなくDataFrame
となります。
DataFrame
はlogicalPlan
属性を持つようですが、それはprotected[sql]
と表示されています。 ParquetRelation
クラスもありますが、それはprivate[sql]
です。それは私がLogicalPlan
を得る方法のために見つけたすべてです。
自分のロジックでテーブル名をParquetに解決するにはどうすればよいですか?アナライザを使って正しい軌道にいるのでしょうか?
であなたのデータフレームの
logicalPlan
を取得することができます。あなたは '論理'を意味しましたか?またはこれはバージョンの相違の問題ですか? – user2357112ああ、私は論理的な意味だった。そのために残念。私は私の答えを編集します。 –
これはうまくいくように思えますが、私は 'logical'、' analyze'、その他の 'queryExecution'属性を使用するかどうかを注意する必要があります。それは私が思うよりも深い詳細で作業しているような気がします。 'QueryExecution'クラスには' public classではない 'というコメントがありますが、 'private'などのマークは付けられていません。 – user2357112