Apache용 .NET® Spark™
무료 오픈 소스 플랫폼 간 빅 데이터 분석 프레임워크
Windows, Linux 및 macOS에서 지원됨
Apache Spark™는 대용량 데이터 집합에 대한 분석을 위한 범용 분산 처리 엔진입니다(일반적으로 테라바이트 또는 페타바이트). Apache Spark는 데이터 일괄 처리, 실시간 스트림, 기계 학습 및 임시 쿼리를 처리하는 데 사용할 수 있습니다.
처리 작업은 노드 클러스터에 분산되고 데이터는 메모리 내에 캐시되어 계산 시간을 줄입니다.
Apache Spark는 데이터 웨어하우징에서 일반적인 ETL(추출, 변환 및 로드) 프로세스와 같은 대용량 데이터 준비 파이프라인에 자주 사용됩니다.
Apache Spark를 사용하면 센서 데이터 스트림을 모니터링하거나 금융 거래를 분석하여 사기를 감지하는 등 대규모 데이터 스트림을 실시간으로 처리할 수 있습니다.
Apache Spark는 동일한 프로그램에서 데이터 준비 및 모델 성향 분산 처리를 통해 기계 학습 모델을 빌드하는 데 드는 비용과 시간을 줄일 수 있습니다.
최신 비즈니스에서는 대개 많은 양의 데이터를 예비 방식으로 분석해야 합니다. Apache Spark는 필수 데이터 처리의 임시 특성에 적합합니다.
Spark용 .NET 바인딩은 여러 언어에 대한 고성능 바인딩을 제공하도록 설계된 Spark interop 계층에 작성됩니다.
Apache Spark용 .NET은 .NET 구현에서 공통적인 .NET API의 공식 사양인 .NET Standard와 호환됩니다. 즉, .NET 코드를 작성하는 모든 곳에서 Apache Spark용 .NET을 사용할 수 있습니다.
Apache Spark용 .NET에 대한 이 소개 비디오 시리즈로 빅 데이터 분석으로의 여정을 시작하세요! Apache Spark용 .NET에 대한 모든 내용과 .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()
Apache Spark용 .NET은 C# 및 F#에서 Apache Spark를 사용하기 위한 API를 제공합니다. .NET API를 사용하면 구조화된 데이터 작업을 위한 Spark SQL 및 Spark Streaming을 포함한 Apache Spark의 모든 측면에 액세스할 수 있습니다.
Apache Spark용 .NET 시작하기TPC-H 벤치마크의 모든 22개 쿼리에 대한 총 실행 시간(초)입니다(더 낮습니다). Ubuntu 16.04에서 웜 실행을 사용하여 TPC-H 벤치마크의 내부 실행에서 가져온 데이터입니다. 벤치마크 방법론 및 자세한 결과는 Apache Spark용 .NET 성능을 참조하세요.
Apache Spark .NET은 고성능을 위해 설계되었으며 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()
Apache Spark용 .NET을 사용하면 .NET 개발자로서 이미 보유하고 있는 모든 지식, 기술, 코드 및 라이브러리를 다시 사용할 수 있습니다.
데이터 처리 코드는 Newtonsoft.Json, ML.NET, MathNet.Numerics, NodaTime 등과 같이 .NET 개발자가 사용할 수 있는 대규모 라이브러리 에코시스템을 활용할 수도 있습니다.
Apache Spark용 .NET은 나머지 .NET과 마찬가지로 Linux, macOS 및 Windows에서 사용할 수 있습니다.
Apache Spark용 .NET은 기본적으로 Azure HDInsight에서 사용할 수 있으며 Azure Databricks, Azure Kubernetes Service, AWS Databricks, AWS EMR 등에 설치할 수 있습니다.
Apache Spark용 .NET은 3,700개 이상의 회사에서 기여한 강력한 커뮤니티가 있는 오픈 소스 .NET 플랫폼의 일부입니다.
.NET은 무료입니다. 여기에는 Apache Spark용 .NET이 포함됩니다. 상업적 사용을 포함하여 요금이나 라이선스 비용이 없습니다.
단계별 자습서는 컴퓨터에서 Apache Spark용 .NET을(를) 실행하는 데 도움이 될 것입니다.
Apache Spark, Spark 및 Apache는 미국 및 기타 국가에서 Apache Software Foundation의 등록 상표 또는 상표입니다.