Apache Spark est ce moteur d'analyse open-source pour le big data. Cela a un peu changé la donne pour les organisations traitant d'énormes charges de données. Spark est rapide. Vraiment rapide. Il utilise le traitement en mémoire qui le fait passer devant les cadres traditionnels—environ 100 fois plus rapide que MapReduce pour les opérations en mémoire. Les choses basées sur disque ? Toujours 10 fois plus rapide.
Caractéristiques remarquables de Spark
Spark vous offre tout cet écosystème :
Vitesse : Moteur en mémoire qui traite les données à une vitesse fulgurante
Polyvalence : Fait toutes sortes de choses—SQL, apprentissage automatique, temps réel, graphiques
Plateforme Unifiée : Fonctionne bien avec différentes sources de données
Traitement Distribué : Répartit le travail sur des clusters pour d'énormes ensembles de données
Rich Libraries : MLlib pour l'apprentissage automatique. Spark Streaming aussi. Et GraphX pour l'analyse de graphes.
À l'intérieur de l'architecture de Spark
Les éléments clés d'Apache Spark incluent :
Spark Driver : A tous ces planificateurs et gestionnaires qui transforment votre code en tâches
Exécuteurs : Ceux-ci effectuent les calculs réels
Gestionnaires de cluster : Cela peut être autonome, YARN, peu importe. Ils récupèrent les nœuds de travail.
Nœuds de travail : Les serveurs qui effectuent le travail lourd
UDF PySpark : Personnalisez Spark
Spark vous permet de l'étendre avec des fonctions définies par l'utilisateur. Des choses plutôt intéressantes. Ces UDF dans PySpark vous permettent de créer une logique personnalisée lorsque les fonctions intégrées ne suffisent pas.
Faites un UDF comme ceci :
python
from pyspark.sql.functions import udf
from pyspark.sql.types import StringType
Définir une fonction Python
def convert_case(text):
return text.upper() si text else None
Les UDF ne sont pas parfaits. Ils sont plus lents que les intégrés à cause des problèmes de sérialisation. Peut-être essayez des UDF vectorisés si la vitesse est importante. Utilisez-les avec précaution.
Ajuster Spark avec spark-defaults.conf
Vous pouvez contrôler Spark via ce fichier spark-defaults.conf. Ce sont simplement des paires clé-valeur :
Un bon réglage semble impliquer des choses de mémoire. Les paramètres de partition aussi. La collecte des ordures peut avoir beaucoup d'importance. Les options de sérialisation pourraient aider à la performance.
Spark continue d'évoluer. C'est important dans le monde des données. Pas parfait, mais assez important.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
De quoi s'agit-il avec Apache Spark ?
Apache Spark est ce moteur d'analyse open-source pour le big data. Cela a un peu changé la donne pour les organisations traitant d'énormes charges de données. Spark est rapide. Vraiment rapide. Il utilise le traitement en mémoire qui le fait passer devant les cadres traditionnels—environ 100 fois plus rapide que MapReduce pour les opérations en mémoire. Les choses basées sur disque ? Toujours 10 fois plus rapide.
Caractéristiques remarquables de Spark
Spark vous offre tout cet écosystème :
À l'intérieur de l'architecture de Spark
Les éléments clés d'Apache Spark incluent :
UDF PySpark : Personnalisez Spark
Spark vous permet de l'étendre avec des fonctions définies par l'utilisateur. Des choses plutôt intéressantes. Ces UDF dans PySpark vous permettent de créer une logique personnalisée lorsque les fonctions intégrées ne suffisent pas.
Faites un UDF comme ceci :
python from pyspark.sql.functions import udf from pyspark.sql.types import StringType
Définir une fonction Python
def convert_case(text): return text.upper() si text else None
S'inscrire en tant que UDF
upper_case_udf = udf(convert_case, StringType())
Appliquer au DataFrame
df = df.withColumn("upper_text", upper_case_udf(df.text_column))
Les UDF ne sont pas parfaits. Ils sont plus lents que les intégrés à cause des problèmes de sérialisation. Peut-être essayez des UDF vectorisés si la vitesse est importante. Utilisez-les avec précaution.
Ajuster Spark avec spark-defaults.conf
Vous pouvez contrôler Spark via ce fichier spark-defaults.conf. Ce sont simplement des paires clé-valeur :
spark.master=yarn spark.executor.memory=4g spark.driver.memory=2g spark.executor.cores=2 spark.sql.shuffle.partitions=200
Un bon réglage semble impliquer des choses de mémoire. Les paramètres de partition aussi. La collecte des ordures peut avoir beaucoup d'importance. Les options de sérialisation pourraient aider à la performance.
Spark continue d'évoluer. C'est important dans le monde des données. Pas parfait, mais assez important.