.NET for Apache Spark とはWhat is .NET for Apache Spark?

Apache Spark は、大規模なデータ セット (一般的にテラバイトまたはペタバイト規模のデータ) の分析に使用される汎用の分散処理エンジンです。Apache Spark is a general-purpose distributed processing engine for analytics over large data sets - typically terabytes or petabytes of data. .NET for Apache Spark は、人気のあるオープンソースのビッグ データ分析フレームワークのための、オープンソースでクロスプラットフォームの無料の .NET サポートです。既に知っている言語を使用して、Apache Spark の機能をビッグ データ アプリケーションに追加できるようになりました。With .NET for Apache Spark, the free, open-source, and cross-platform .NET Support for the popular open-source big data analytics framework, you can now add the power of Apache Spark to your big data applications using languages you already know.

.NET for Apache Spark を選択する理由Why choose .NET for Apache Spark?

.NET for Apache Spark は、.NET の経験あるいはコード ベースを持つ開発者が、ビッグ データ分析の世界へ参入できるように支援します。.NET for Apache Spark empowers developers with .NET experience or code bases to participate in the world of big data analytics. .NET for Apache Spark は、C# および F# から Spark を使用するためのハイ パフォーマンスの API を提供します。.NET for Apache Spark provides high performance APIs for using Spark from C# and F#. C# および F# では、次にアクセスできます。With C# and F#, you can access:

  • 構造化データを操作するためのデータフレームおよび SparkSQL。DataFrame and SparkSQL for working with structured data.
  • ストリーミング データを操作するための Spark Structured Streaming。Spark Structured Streaming for working with streaming data.
  • SQL 構文を使用してクエリを作成するための Spark SQL。Spark SQL for writing queries with SQL syntax.
  • トレーニングと予測を高速化するための機械学習の統合 (つまり、ML.NET と共に .NET for Apache Spark を使用します)。Machine learning integration for faster training and prediction (that is, use .NET for Apache Spark alongside ML.NET).

.NET for Apache Spark は、.NET Standard (.NET 実装全体で共通した .NET API の標準仕様) に準拠しています。.NET for Apache Spark is compliant with .NET Standard, a formal specification of .NET APIs that are common across .NET implementations. つまり、.NET コードが記述されたすべての場所で Apache Spark を使用できることで、.NET 開発者として既に持っているすべての知識、スキル、コード、およびライブラリを再利用することができます。This means you can use .NET for Apache Spark anywhere you write .NET code allowing you to reuse all the knowledge, skills, code, and libraries you already have as a .NET developer.

.NET for Apache Spark は、.NET Core を使用して Windows、Linux、macOS で実行されます。.NET for Apache Spark runs on Windows, Linux, and macOS using .NET Core. Windows では、.NET Framework を使用して実行することもできます。It also runs on Windows using .NET Framework. Azure HDInsight Spark、Amazon EMR Spark、Azure Databricks、AWS 上の Databricks など、主要なすべてのクラウド プロバイダーにアプリケーションをデプロイできます。You can deploy your applications to all major cloud providers including Azure HDInsight Spark, Amazon EMR Spark, Azure Databricks, and Databricks on AWS.

.NET for Apache Spark のアーキテクチャ.NET for Apache Spark architecture

Spark への C# および F# の言語バインドは、拡張を簡単にする新しい Spark 相互運用レイヤーに記述されています。The C#/ F# language binding to Spark is written on a new Spark interop layer which offers easier extensibility. この新しい Spark 相互運用レイヤーは、言語拡張のベスト プラクティスを使用して記述され、相互運用とパフォーマンスのために最適化されています。This new layer of Spark interop was written using the best practices for language extension and optimizes for interop and performance. 長期的には、この拡張機能を使用して、Spark に他の言語のサポートを追加できます。Long term, this extensibility can be used for adding support for other languages in Spark.

.NET for Apache Spark のアーキテクチャ.NET for Apache Spark architecture

Spark 言語拡張機能の相互運用のサポートについては提案を参照してください。You can learn about interop support for Spark language extensions from the proposal.

.NET for Apache Spark のパフォーマンス.NET for Apache Spark performance

TPC-H ベンチマークを使用して Python および Scala と比較した場合、.NET for Apache Spark はほとんどの場合で優れた成績を収め、ユーザー定義関数のパフォーマンスが重要な場合は Python よりも 2 倍高速に実行されます。When compared against Python and Scala using the TPC-H benchmark, .NET for Apache Spark performs well in most cases and is 2x faster than Python when user-defined function performance is critical. パフォーマンスを改善してベンチマークを行うための継続的な取り組みがなされています。There is an ongoing effort to improve and benchmark performance.

独自のベンチマークを実行するには、.NET for Apache Spark GitHub で利用可能なベンチマークを参照してください。To do your own benchmarking, see the benchmarks available on the .NET for Apache Spark GitHub.

.NET for Apache Spark のロードマップ.NET for Apache Spark roadmap

正規の .NET for Apache Spark のロードマップから短期および長期の計画について説明します。Learn about short term and long term plans from the official .NET for Apache Spark roadmap.

.NET Foundation.NET Foundation

.NET for Apache Spark プロジェクトは、.NET Foundation の一部です。The .NET for Apache Spark project is part of the .NET Foundation.

投稿Contributions

.NET for Apache Spark チームでは、GitHub イシューとプル要求の両方での投稿を推奨しています。The .NET for Apache Spark team encourages contributions, both GitHub issues and pull requests. まず、既存のイシューを探します。First, look for an existing issue. 既存のイシューが見つからない場合は、新しいイシューを開始します。If you can't find an existing issue, open a new issue.

次の手順Next steps

.NET for Apache Spark を試す。Try .NET for Apache Spark.