スパークを使用してHBASEからデータをフェッチおよび操作するとき、*Spark sql join*
と*spark dataframe join*
のどちらが高速ですか?スパークSQL結合とスパークデータフレーム結合
答えて
私は適切にテストするために、クラスタへのアクセスを持っていないが、私には、Spark SQLだけでネイティブデータフレームコードまでコンパイルされることを想像してみてください。
私が聞いたことは、生産コードの探索とデータフレーム操作にSQLコードを使用する必要があるということです。
私が知る限り、彼らはパフォーマンスに関して同じように行動するべきです。 SQLは内部的にDataFrameとして動作します
Spark SQLは、Catalystという強力な新しい最適化フレームワークをもたらします。 Catalystを使用すると、Sparkは自動的にSQLクエリを変換し、より効率的に実行することができます。
DataFrameは、名前付き列に編成されたデータセットです。 R/Pythonのリレーショナルデータベースやデータフレームのテーブルと概念的には同等ですが、RDD(強力な型付け、強力なラムダ関数を使用する能力)の利点を提供する、より豊かな最適化を備え、Spark SQLの最適化された実行の利点エンジン。
同じ最適化アルゴリズムを使用するため、実行速度は同じになります。
RDDは常にOutperform DataframeとSparkSQLですが、私の経験から、DataframeはSparkSQLと比べてパフォーマンスが優れています。データフレーム関数は、spark sql.Belowリンクと比較してパフォーマンスが優れています。
あなたが投稿したリンクはSpark 1.6に関するものです。現在、Spark 2.0ではSparkSQLは全体のステージコード生成を利用して、最大10倍のクエリを高速化します。したがって、あなたが提供したデータとあなたが述べたものは、現在古くなっています。 – mgaido
参加は慎重に実装されたクエリ間で共有される可能性がある場合RDDSに参加良いオプションかもしれません。しかし、これが当てはまらない場合は、spark/catalystをspark sql内で実行してください。それはすべての最適化を行います。したがって、結合ロジックなどを維持する必要はありません。
Spark SQL joinとSpark Dataframe joinはほぼ同じことです。参加は実際にはボンネットの下でRDD操作に委任されます。 RDD操作の上には、spark SQL、データフレーム、データセットなどの便利なメソッドがあります。 spark sqlの場合、SQLを解析するために余計な時間を費やす必要があります。
プログラミングの面で優れています。私はコンパイル時に構文エラーを捕まえることができるので、データセットが好きです。また、シーンの背後にあるエンコードでは、データを圧縮してクエリを実行します。
- 1. スパーク結合アレイ
- 2. ブロードキャストハッシュ結合(スパークデータフレームあり)
- 3. スパーク:配列との結合
- 4. SQL結合結合
- 5. スパーク複数条件結合
- 6. 合計とSQLの結合
- 7. SQLと2複合結合
- 8. 配列を含むJavaスパークデータフレーム結合列
- 9. スパークにおけるIDの行の結合/結合
- 10. SQL Server 2008の内部結合と外部結合の混合
- 11. SQLの行を結合する結合
- 12. 自己結合+ Sqlサーバーの左結合
- 13. SQL結合データ
- 14. SQL結合テーブル
- 15. SQLデータ結合
- 16. SQL結合や
- 17. SQL結合文
- 18. SQL Server連結の結合
- 19. スイッチングとの結合結合
- 20. 複合SQL自己結合
- 21. JavaとSQLの結合?
- 22. SQL Server:左結合とサブクエリ
- 23. SQL結合カウントとselectクエリ
- 24. SQL結合テーブルとMIN句
- 25. SQL Serverの結合とカウント
- 26. LINQ to SQL結合と合計
- 27. スパーク結合列のヌル値を返す
- 28. 内部結合と外部結合SQL文の比較
- 29. 結合と結合句を使用したSQLクエリ
- 30. 内部結合と左結合のためSQLクエリが遅い?
データフレームがrddではありません! – 54l3d
@ 54l3d彼らはすべて互いの上に構築されます。結局のところ、方法に関係なく、あなたの実行計画はRDDからDAGとして抽出されます。 SQLは、複数の可能な実行計画で何をしたいのかをより抽象的な定義です。どのように良い計画を選択するかは、SQLエンジンの秘密のソースです。適切なRDD、人間または機械を生成する上で優れているのは誰ですか? – YoYo