Yunqi Conference | Apache Spark3.0およびKoalasの最新の開発
過去のメモリビッグデータ過去のメモリビッグデータ
この情報は、2019年9月26日に杭州で開催されたYunqiConferenceのBigData&AISummitブランチからのものです。トピック「オープンソースエコシステムの新開発:Apache Spark 3.0とコアラ」のタイトル。DatabricksSparkR&DディレクターのゲストLiXiaoを共有しています。
以下は今回のミーティングの動画です(WeChat公式アカウントの制限により、投稿できるのは30分未満の動画のみです。完全な動画とPPTについては、過去のメモリビッグデータ公式アカウントに注意して返信してください。それを取得するためにspark_yqに。)
2019年はSparkコミュニティにとって特別な年です。10年前、Ma Tieは、Netflixが開始したNetflix Prizeコンテストでクラスメートが数百万ドルを獲得できるようにするために、すばらしいプロジェクトを生み出しました。これが現在ApacheSparkです。
上記はApacheSparkの開発履歴です。Apache Spark 3.0のプレビューバージョンは2019年9月にリリースされ、Apache Spark3.0の公式バージョンは来年初めにリリースされます。
ワールドクラスは、SparkとPySparkの両方がスタックオーバーフローで上位にランクされ、10年間Apache Sparkで1位、Apache Hadoopで2位にランクされたことを知っています。将来、ApacheSparkとPySparkが世界を独占するでしょう。
Apache Spark 3.0は、コミュニティの共同の努力の結果であり、1年以上にわたって開発されてきました。以下は、Apache Spark3.0の主な機能です。
- 動的パーティション削減
- アダプティブ
- Spark Graph
- 加速誘導スケジューリング(GPU、詳細については、Apache Spark 3.0が組み込みのGPUスケジューリングをサポートします。記事の最後に利点があります)
- k8sでSpark
- データソースAPIV2
- ANSISQL互換
- SQLのヒント
- SparkRでのベクトル化
- JDK 11
- Hadoop 3
- Scala2.12は
主にApacheSpark 3.0のクエリ最適化を導入しています
。Spark2.xはコストベースの最適化を追加しますが、これはうまく機能しません。主な理由は次のとおりです。 - 統計情報の欠如;
- 統計は古くなっています。
- 一般的なコストモデルを抽象化することは困難です。
これらの問題を解決するために、Apache Spark3.0はランタイムベースのクエリ最適化を導入しました。
1つ目は動的パーティション削減です。たとえば
、上記のSQLクエリです。t2テーブルt2.id <2が除外するデータが少ないと仮定しますが、以前のバージョンのSparkは動的にコストを計算できないため、t1テーブルが次のようになる可能性があります。多数の無効なデータをスキャンします。動的パーティション削減により、実行時にt1テーブルの不要なデータを除外することができます。
この最適化後、クエリスキャンのデータが大幅に削減され、パフォーマンスが33倍向上します
。2番目の最適化はAE(詳細については、「アダプティブ実行を使用してSpark SQLをより効率的かつ使いやすくする方法」を参照してください。
たとえば、次のクエリのために、コストベースのモデルの最適化を正確に評価することはできません。
AEでは、スパークが動的に関連する情報をカウントすることができますし、動的なBroadcastHashJoinにSortMergeJoinの変更など、実行計画を調整する:
スパークは、その誕生の先頭に配置されています統合されたビッグデータ処理エンジンです。
データ処理は主に次の3つの段階を経ます - ビジネス・インテリジェンス
- ビッグデータ分析
- データ統合+ AI
Sparkは、主にデータエンジニアとデータサイエンティストの2つのグループに直面しています。
近年、Pythonのユーザーが増えるにつれ、データ分析にパンダを使用するユーザーも増えています。しかし、パンダは主に少量のデータの分析を解決します。データ量が多いと、分析パフォーマンスが急激に低下します。大量のデータを分析するためには、新しい計算エンジンを学ぶ必要があります。
この問題を解決するために、パンダとシームレスに互換性のあるSparkオープンソースコアラ(コアラの詳細については、コアラ:パンダ開発者がApache Sparkに簡単に移行できるようにするを参照してください)。コアラがオープンソース化されてからの毎日のダウンロードは次のとおりです。
データ分析のツールとして、PySparkは1日あたりのダウンロード数が徐々に増加しています。
以下はPySpark DATAFRAMEとパンダDATAFRAMEとの間の差である:
以下は主に、CSVファイルを読み込む、列名を変更し、最後に新しい列を追加するには、使用例の比較である:
PySparkがに比べて使用されていることがわかりますpandasそれでも非常に面倒です。pandasを使用するユーザーは新しいAPIを学習する必要がありますが、koalasではこの問題は存在しません。データエンジニアリングの観点からデータエンジニアリングを
紹介しましょう
。オープンソースのDelta Lakeのレンガの数(詳細については、を参照してください)。重い| ApacheSparkコミュニティが楽しみにしているDeltaLakeはオープンソースです):
Delta Lakeは薄い空気から作成されたのではなく、何千人ものユーザーの問題点に基づいています。デルタレイクの使用法も大きく異なります。寄木細工の床をデルタに直接置き換えます。
以下は主
にデルタレイクの特徴を紹介しています。デルタレイクの3つのユーザー使用シナリオは
次のとおりです。レンガによるデルタの使用は次のとおりです。