Qu'est-ce qu'Apache Spark?
Apache Spark est un outil de traitement des données libre et open source qui utilise des structures de programmation de base pour persister et analyser les données en temps réel sur plusieurs grappes d'ordinateurs.
Spark a commencé comme une expérience d'amplab à UC Berkeley en 2009. Il fait partie de la licence BSD qui est publiée en 2010. Spark est devenu un projet Apache en 2013. En 2014, Databricks a obtenu un nouveau record du monde en trier les ensembles de données à grande échelle avec Spark. Spark prend en charge divers langages de programmation comme R, Python, Java et Scala et est 100 fois plus rapide que MapReduce dans le traitement des données car elle est effectuée dans la mémoire. Il contient moins de lignes de code, et pour l'authentification, il utilise un code partagé. Il peut également fonctionner sur le fil, profitant des capacités de Kerberos. Il est basé sur Hadoop MapReduce et étend le concept MapReduce pour utiliser efficacement les nouveaux types de calculs.
L'avantage principal de Spark sur Hadoop est d'utiliser une architecture de traitement en mémoire. Pour utiliser le stockage de réplication distribué, Spark peut fonctionner au-dessus de HDFS. Spark peut être utilisé dans le même cluster Hadoop que MapReduce ou comme cadre de traitement autonome. Le fil peut également exécuter des applications Spark. Au lieu d'utiliser un espace mémoire local pour le calcul, Spark utilise un calcul en mémoire, permettant aux utilisateurs de traiter les données dans RAM et de la récupérer rapidement. Spark n'est pas destiné à remplacer Hadoop; Cela pourrait être considéré comme un compliment.
MapReduce et Spark sont utilisés en tandem: MapReduce gère le traitement par lots tandis que Spark gère le traitement en temps réel. Le code Spark peut être réutilisé pour le traitement par lots, l'adhésion aux flux contre les données historiques et la réalisation de requêtes ad hoc sur l'état du flux. Spark comprend des outils de données en streaming, des recherches interactives / déclaratives, l'apprentissage automatique, ainsi que la carte et la réduction.
Quelle est la méthode de fusion de Spark?
La méthode Coalesce est utilisée pour réduire le nombre de partitions de l'ensemble de données. Coalesce évite le mélange complet en mélangeant les données à l'aide du partitionnaire de hash (par défaut) et s'adapte aux partitions existantes plutôt qu'en générant de nouvelles. Cela signifie qu'il ne peut que réduire le nombre de partitions. Dans Spark SQL, le se fondre La méthode régulière est une méthode non agrégée. Pour réduire la quantité de données déplacées, les coalesce utilisent les divisions existantes. Si toutes les colonnes sont nuls, le coalesce renvoie la première valeur non nulle. Le fusion est plus rapide que la répartition car il évite l'ensemble des mélanges, tandis que la répartition fait un mélange complet, ce qui prend du temps et coûteux. Au moins une colonne est requise pour la coalescence, et toutes les colonnes doivent être de types mêmes ou compatibles.
Exemple d'utilisation de la méthode de coalesce
Pour tester la fonction Spark Coalesce, utilisez la commande suivante:
testdf = sqlcontext.CreatedataFrame ([(1,1), (2,2), (aucun, 3), (4, aucun)], ["id", "valeur"])Importez les fonctions Pyspark requises à l'aide de la commande suivante:
de Pyspark.SQL.Types Importer FloatType
de Pyspark.SQL.Fonctions Import *
Pour créer une nouvelle colonne avec des valeurs non nulles, appliquez la commande suivante:
tmp = testdf.withColumn ('Col', coalesce (testdf ['id'], testdf ['value']))Conclusion
Nous avons discuté de la méthode Apache Spark, Spark SQL et Spark SQL Coalesce. Nous avons appris qu'il peut être utilisé pour réduire les partitions du cadre de données, ainsi qu'un exemple. Nous avons également réalisé que la méthode de coalesce ne peut être utilisée que pour réduire le nombre de partitions tandis que le partitionnement peut être utilisé pour diminuer ou augmenter les partitions.