.NET for Apache ® Spark ™
無料のオープンソースのクロスプラットフォーム ビッグデータ分析フレームワーク
Windows、Linux、macOS でサポートされています
無料のオープンソースのクロスプラットフォーム ビッグデータ分析フレームワーク
Windows、Linux、macOS でサポートされています
Apache Spark™ は、大規模なデータセット (通常はテラバイトまたはペタバイト単位のデータ) を分析するための汎用分散処理エンジンです。Apache Spark を使用して、データ、リアルタイム ストリーム、機械学習、アドホック クエリを処理することができます。
計算時間を短縮するために、処理タスクはノードのクラスターに分散され、データはメモリ内にキャッシュされます。
Apache Spark は、データウェアハウスで一般的な抽出、変換、読み込み (ETL) プロセスなど、大規模なデータ準備パイプラインによく使用されます。
大規模データのストリームでは、センサー データのストリームを監視したり、金融取引を分析して不正を検出するなど、Apache Spark を使用してリアルタイムに処理することができます。
Apache Sparkは、データ準備とモデル トレーニングの分散処理を通じて、同じプログラムで、機械学習モデルの構築に伴うコストと時間を削減できます。
今日のビジネスでは、多くの場合、探索的手法で大量のデータを分析する必要があります。Apache Spark は、必要なデータ処理のアドホックな性質に適しています。
Spark 向け.NET バインドは、Spark 相互運用レイヤーに記述されており、複数の言語への高パフォーマンスなバインドを提供するように設計されています。
.NET for Apache Spark は、.NET Standard に準拠しています。これは .NET 実装全体で共通の .NET API の正式な仕様です。 これは、.NET コードを記述した場所ならどこでも .NET for Apache Spark を使用できることを意味します。
.NET for Apache Spark を紹介するビデオ シリーズで、ビッグデータ分析への旅を始めましょう。.NET for Apache Spark の詳細と、ビッグデータの世界を .NET エコシステムに導入する方法を学びましょう。
// Create a Spark session
var spark = SparkSession
.Builder()
.AppName("word_count_sample")
.GetOrCreate();
// Create a DataFrame
DataFrame dataFrame = spark.Read().Text("input.txt");
// Manipulate and view data
var words = dataFrame.Select(Split(dataFrame["value"], " ").Alias("words"));
words.Select(Explode(words["words"])
.Alias("word"))
.GroupBy("word")
.Count()
.Show();
// Create a Spark session
let spark =
SparkSession.Builder()
.AppName("word_count_sample")
.GetOrCreate()
// Create a DataFrame
let df = spark.Read().Text("input.txt")
let words = df.Select(Split(df.["value"], " ").Alias("words"))
words.Select(Explode(words.["words"]).Alias("word"))
.GroupBy("word")
.Count()
.NET for Apache Spark は、C# および F# の Apache Spark を使用するための API を提供します。 .NET API を使用すると、構造化データを操作するための Spark SQL やSpark Streaming など、Apache Spark のすべての側面にアクセスできます。
.NET for Apache Spark の概要TPC-H ベンチマーク (低いほど良い) の全 22 クエリの合計実行時間 (秒)。データは TPC-H ベンチマークを Ubuntu 16.04 でウォーム実行した場合のものです。ベンチマーク手法や結果の詳細については、.NET for Apache Spark のパフォーマンス を参照してください。
.NET for Apache Spark は高いパフォーマンスを発揮するように設計されており、TPC-H ベンチマークに適しています。
TPC-H ベンチマークは、ビジネス指向のアドホックなクエリと、同時実行型のデータ変更で構成されています。これらのクエリとデータベースに格納されたデータは、業界全体に広く関連するものが選ばれています。
public void Run(string[] args)
{
var spark = SparkSession.Builder().AppName("Sample").GetOrCreate();
// Register a user-defined function (UDF) that runs C# code
spark.Udf().Register<string, bool>("MyUDF", (text) => Sentiment(text));
var df = spark.Read().Csv("data.csv").CreateOrReplaceTempView("Tweets");
var sqlDf = spark.Sql("SELECT _c0, MyUDF(_c1) FROM Tweets");
}
public static bool Sentiment(string text)
{
// Use ML.NET model to predict positive or negative sentiment of text
var predictionEngine = GetPredictionEngine();
var result = predictionEngine.Predict(new Tweet {Text = text});
return result.Prediction;
}
type Tweet = { Text: string }
let getSentiment (tweet: Tweet) =
// Use ML.NET model to predict positive or negative sentiment of text
let predictionEngine = GetPredictionEngine()
let result = predictionEngine.Predict(tweet)
result.Prediction
let run (args: string[]) =
let spark = SparkSession.Builder().AppName("Sample").GetOrCreate()
// Register a user-defined function (UDF) that runs F# code
spark.Udf().Register<string, bool>("MyUDF", fun text -> getSentiment tweet)
let df = spark.Read().Csv("data.csv").CreateOrReplaceTempView("Tweets")
// Register a UDF for sql functions
let sqlDf = spark.Sql("SELECT _c0, MyUDF(_c1) FROM Tweets")
sqlDf.Show()
.NET for Apache Spark では、.NET 開発者として既に持っている知識、スキル、コード、ライブラリをすべて再利用することができます。
データ処理コードでは、Newtonsoft.Json、ML.NET、MathNet.Numerics、NodaTime など、.NET 開発者が利用できるライブラリの大規模なエコシステムを利用することもできます。
.NET for Apache Spark は、他の .NET と同様に、Linux、macOS、Windows で使用できます。
.NET for Apache Spark は、Azure HDInsight の既定で利用できるほか、Azure Databricks、Azure Kubernetes Service、AWS Databricks、AWS EMR などにもインストールできます。
..NET for Apache Spark は、3,700 社を超える企業からの強力な貢献者のコミュニティを持つオープンソース .NET プラットフォームの一部です。
.NET は無料で、.NET for Apache Spark が含まれます。商用使用を含め、料金やライセンス費用は発生しません。
このステップ バイ ステップ チュートリアルは、あなたのコンピューターで .NET for Apache Spark を実行するのに役立ちます。
Apache Spark、Spark、および Apache は、米国およびその他の国における Apache Software Foundation の登録商標または商標です。