.NET para Apache® Spark™
Un marco de análisis de macro-datos gratuito, de código abierto y multiplataforma
Compatible con Windows, Linux y macOS
Un marco de análisis de macro-datos gratuito, de código abierto y multiplataforma
Compatible con Windows, Linux y macOS
Apache Spark™ es un motor de procesamiento distribuido de uso general para realizar análisis en grandes conjuntos de datos, normalmente, terabytes o petabytes de datos. Apache Spark se pueden usar para procesar lotes de datos, flujos en tiempo real, aprendizaje automático y consultas ad hoc.
El procesamiento de las tareas se distribuye a través de un clúster de nodos y los datos se almacenan en la memoria caché para reducir el tiempo de proceso.
Por lo general, Apache Spark se usa para canalizaciones de preparación de datos de gran volumen, como procesos de extracción, transformación y carga (ETL) que son comunes en el almacenamiento de datos.
Se pueden procesar grandes flujos de datos en tiempo real con Apache Spark, como la supervisión de flujos de datos del sensor o el análisis de transacciones financieras para detectar fraudes.
Apache Spark puede reducir el costo y el tiempo implicados en la creación de modelos de aprendizaje automático mediante el procesamiento distribuido de la preparación de datos y el entrenamiento de modelos, en el mismo programa.
Las empresas modernas a menudo requieren analizar grandes cantidades de datos de forma exploratoria. Apache Spark es adecuado para la naturaleza ad hoc del procesamiento de datos necesario.
Los enlaces de .NET para Spark se escriben en la capa de interoperabilidad de Spark, diseñada para proporcionar enlaces de alto rendimiento a varios lenguajes.
.NET para Apache Spark es compatible con .NET Estándar— una especificación formal de las API de .NET que son comunes en las implementaciones de .NET. Esto significa que puede usar .NET para Apache Spark en cualquier lugar donde escriba código .NET.
Comience su recorrido por el análisis de macrodatos con esta serie de vídeos introductorios sobre .NET para Apache Spark. Obtenga información sobre .NET para Apache Spark y cómo aporta el mundo de los macrodatos al ecosistema de .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 para Apache Spark proporciona API para usar Apache Spark de C# y F#. Con las API de .NET, puede acceder a todos los aspectos de Apache Spark, incluido Spark SQL, para trabajar con datos estructurados y Spark Streaming.
Introducción a .NET para Apache SparkTiempo total de ejecución (segundos) para las 22 consultas en el punto de referencia TPC-H (cuanto más bajo, mejor). Datos obtenidos de una ejecución interna de la evaluación comparativa TPC-H, utilizando una ejecución en caliente en Ubuntu 16.04. Para conocer la metodología comparativa y los resultados detallados, consulte .NET para el rendimiento de Apache Spark.
.NET para Apache Spark está diseñado para un alto rendimiento y funciona bien en el punto de referencia TPC-H.
El banco de pruebas TPC-H consta de un conjunto de consultas ad hoc orientadas a la empresa y modificaciones de datos simultáneas. Las consultas y los datos que rellenan la base de datos se han elegido para tener una amplia relevancia en todo el sector.
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 para Apache Spark le permite volver a usar todos los conocimientos, aptitudes, código y bibliotecas que ya tiene como desarrollador de .NET.
El código de procesamiento de datos también puede usar el gran ecosistema de bibliotecas disponibles para los desarrolladores de .NET, como Newtonsoft.Json, ML.NET, MathNet.Numerics, NodaTime y muchas más.
.NET para Apache Spark se puede usar en Linux, macOS y Windows, al igual que el resto de .NET.
.NET para Apache Spark está disponible de forma predeterminada en Azure HDInsight y se puede instalar en Azure Databricks, Azure Kubernetes Service, AWS Databricks, AWS EMR, y mucho más.
.NET para Apache Spark forma parte de la platform .NET de código abierto que cuenta con una sólida comunidad de colaboradores de más de 3700 empresas.
. NET es gratuito y eso incluye .NET para Apache Spark. No hay tarifas ni costos de licencia, incluido el uso comercial.
Nuestro tutorial paso a paso le ayudará a ejecutar .NET para Apache Spark en su equipo.
Apache Spark, Spark y Apache son marcas comerciales registradas o marcas comerciales de The Apache Software Foundation en el Estados Unidos y en otros países.