.NET para Apache® e Spark™
Uma ampla estrutura de análise de dados gratuita, de código-fonte aberto e de várias plataformas
Compatível com Windows, Linux e macOS
Uma ampla estrutura de análise de dados gratuita, de código-fonte aberto e de várias plataformas
Compatível com Windows, Linux e macOS
Apache Spark™ é um mecanismo de processamento de uso geral distribuído para analisar grandes conjuntos de dados— tipicamente, terabytes ou petabytes de dados. O Apache Spark pode ser usado para processamento de lotes de dados, transmissão em tempo real, aprendizado de máquina e consulta ad hoc.
As tarefas de processamento são distribuídas por um cluster de nós e os dados são armazenados em cache na memória para reduzir o tempo de computação.
Apache Spark geralmente é usado para pipelines de preparação de dados de alto volume, como processos de extração, transformação e carregamento (ETL) que são comuns em data warehouse.
Grandes fluxos de dados podem ser processados em tempo real com o Apache Spark, como o monitoramento de fluxos de dados de um sensor ou a análise de transações financeiras para detectar fraudes.
O Apache Spark pode reduzir o custo e o tempo envolvidos na criação de modelos de machine learning com o processamento distribuído de preparação de dados e o treinamento do modelo no mesmo programa.
Os negócios modernos geralmente exigem a análise de grandes quantidades de dados de maneira exploratória. O Apache Spark é adequado para a natureza ad hoc do processamento de dados necessário.
As associações do .NET para Spark são escritas na camada de interoperabilidade do Spark, projetadas para fornecer associações de alto desempenho para várias linguagens.
O .NET para Apache Spark está em conformidade com .NET Standard—uma especificação formal de APIs do .NET que são comuns entre implementações do .NET. Isso significa que você pode usar o .NET para Apache Spark em qualquer lugar em que escreva código .NET.
Comece sua jornada na análise de Big Data com esta série de vídeos introdutória sobre o .NET para Apache Spark! Saiba tudo sobre o .NET para Apache Spark e como ele traz o mundo de Big Data para o ecossistema do .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()
O .NET para Apache Spark fornece APIs para usar o Apache Spark de C# e F#. Com as APIs do .NET, você pode acessar todos os aspectos do Apache Spark, incluindo Spark SQL, para trabalhar com dados estruturados e Spark Streaming.
Introdução ao .NET para Apache SparkTempo de execução total (segundos) para todas as 22 consultas no parâmetro de comparação TPC-H (inferior é melhor). Dados originados de uma execução interna do parâmetro de comparação TPC-H, usando a execução passiva no Ubuntu 16.04. Para metodologia de parâmetro de comparação e resultados detalhados, consulte Desempenho do .NET para Apache Spark.
O .NET para Apache Spark foi projetado para alto desempenho e funciona bem na avaliação de desempenho TPC-H.
O parâmetro de comparação TPC-H consiste em um conjunto de consultas ad hoc orientadas a negócios e modificações simultâneas de dados. As consultas e os dados que populam o banco de dados foram escolhidos para ter ampla relevância em todo o setor.
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()
O .NET para Apache Spark permite que você reutilize todos os seus conhecimentos, habilidades, códigos e bibliotecas que você já tem como um desenvolvedor de .NET.
Seu código de processamento de dados também pode utilizar o grande ecossistema de bibliotecas disponível para desenvolvedores do .NET, como Newtonsoft.Json, ML.NET, MathNet.Numerics, NodaTime e muito mais.
O .NET para Apache Spark pode ser usado em Linux, macOS e Windows, assim como o restante do .NET.
O .NET para Apache Spark está disponível por padrão no Azure HDInsight e pode ser instalado no Azure Databricks, Serviço de Kubernetes do Azure, AWS Databricks, AWS EMR e muito mais.
O .NET para Apache Spark faz parte da plataforma de código aberto .NET que tem uma forte comunidade de colaboradores de mais de 3.700 empresas.
O .NET é gratuito e inclui o .NET para o Apache Spark. Não nenhuma tarifa nem custos de licenciamento, mesmo para uso comercial.
Nosso tutorial passo a passo ajudará você a executar .NET para Apache Spark no computador.
Apache Spark, Spark e Apache são marcas registradas ou marcas comerciais da Apache Software Foundation no Estados Unidos e em outros países.