2017-09-07 13 views
2

ハイブでビューを作成しましたが、これは複雑なクエリです(結合、結合などがあります)。 DFでクエリを実行しているときに、Catalyst &タングステンが機能するのですか、それとも100%のハイブですか? 私が尋ねようとしているのは、ビューが実行されているクエリを取得してから、スパークSQLを使用してクエリを実行することができますか?Catalyst &タングステンの改良?Spark SQLクエリはDF上で実行されていますか?

例:

sqlContext.sql("select * from view") 

ビュークエリはハイブ(ハイブコンテキスト)上で実行され、そのように効率的ではありません。

val str = getQuery... 
sqlContext.sql("*actual query*").. 

それは

は非常にありがとう...ので、私はそれがより効率的になるだろうわからないんだけど、私はそうする方法を見つけ出すためにtrynigてるのデータセットではありません多く!私はDFにクエリを実行してい

答えて

2

は、触媒&タングステン 仕事をしたり、それは100%のハイブのですか?

  • タングステンは、Spark 1.5でデフォルトになったと(これをfalseに設定することで、それ以降のバージョンにするか無効)spark.sql.tungsten.enabled =真を設定することにより、以前のバージョンで有効にすることができます。タングステンがなくても、Spark SQLはKryoシリアル化を使用してストレージコストを最小限に抑えるカラム型ストレージ形式を使用します。

  • ハイブクエリとスパークデータフレームの両方は、カタリストオプティマイザを使用します。

私が尋ねるしようとしている何spark.sql.tungsten.enabled

このプロパティによって、あなたは、タングステンを有効にするかしない参照 - 私は、ビューが を実行しているクエリを取得し、実行するために、スパークSQLを使用することができますクエリ - 触媒付き& タングステンは改良されましたか?コードから

  • :それの内部を見ることがdf.explainによる実行を参照してください。スパークUIから

スパーク1.5は、このようなフィルタ演算子とランタイムの選択として運用メトリックの動的更新を使用したWeb UIでのSQLとデータフレームのクエリプランの可視化を、追加します集約と結合のメモリー使用量。以下は、Web UIからのプランの視覚化の例です。 (sourceenter image description here

関連する問題