Introduction à Spark avec Python - PySpark pour les débutants



Apache Spark a pris le contrôle du monde du Big Data & Analytics et Python est l'un des langages de programmation les plus accessibles utilisés dans l'industrie aujourd'hui. Donc, ici, dans ce blog, nous allons en apprendre davantage sur Pyspark (étincelle avec python) pour tirer le meilleur parti des deux mondes.

est l'un des frameworks les plus utilisés pour gérer et travailler avec le Big Data ET Python est l'un des langages de programmation les plus utilisés pour l'analyse de données, l'apprentissage automatique et bien plus encore. Alors, pourquoi ne pas les utiliser ensemble? C'est ici que Spark avec Python aussi connu sous le nom PySpark entre enlaimage.

Avec un salaire moyen de 110 000 USD par an pour un développeur Apache Spark, il ne fait aucun doute que Spark est beaucoup utilisé dans l'industrie. En raison desesriche ensemble de bibliothèques, Python est utilisé parlala majorité des scientifiques des données et des experts en analyse aujourd'hui. L'intégration de Python à Spark a été un cadeau majeur pour la communauté. Spark a été développé en langage Scala, qui est très similaire à Java. Il compile le code du programme en bytecode pour la JVM pour le traitement des Big Data. Pour prendre en charge Spark avec python, la communauté Apache Spark a publié PySpark.Depuis, est connue pour être l'une des compétences les plus recherchées dans l'industrie en raison du large éventail d'avantages qui découlent de la combinaison du meilleur de ces deux mondes.Dans ce blog Spark avec Python, j'aborderai les sujets suivants.





Introduction à Apache Spark

Apache Spark est un framework de calcul de cluster open source pour traitement en temps réel développé par Apache Software Foundation. Spark fournit une interface pour programmer des clusters entiers avec implicite parallélisme des données et tolérance aux pannes.



Vous trouverez ci-dessous certaines des fonctionnalités d'Apache Spark qui lui donnent un avantage sur les autres frameworks:

Fonctionnalités Spark - Spark avec Python - Edureka

  • La vitesse: Il est 100 fois plus rapide que les cadres traditionnels de traitement de données à grande échelle.
  • Mise en cache puissante: Une couche de programmation simple offre de puissantes capacités de mise en cache et de persistance du disque.
  • Déploiement: Peut être déployé via Mesos, Hadoop via Yarn ou le propre gestionnaire de cluster de Spark.
  • Temps réel: Temps réelcalcul et faible latence en raison du calcul en mémoire.
  • Polyglotte: C'est l'un des plus importantsCaractéristiquesde ce framework car il peut être programmé en Scala, Java, Python et R.

Pourquoi opter pour Python?

Bien que Spark ait été conçu en scala, ce qui le rend presque 10 fois plus rapide que Python, mais Scala n'est plus rapide que lorsque le le nombre de cœurs utilisés est inférieur . Comme la plupart des analyses et des processus nécessitent aujourd'hui un grand nombre de cœurs, l'avantage de performance de Scala n'est pas si grand.



comment créer un tableau de bord power bi

Pour les programmeurs, Python est comparativement plus facile apprendre en raison de sa syntaxe et de ses bibliothèques standard. De plus, c'est un langage typé dynamiquement, ce qui signifie que les RDD peuvent contenir des objets de plusieurs types.

Bien que Scala ait SparkMLlib il n'a pas suffisamment de bibliothèques et d'outils pour l'apprentissage automatique et la PNL fins. De plus, Scala manque de visualisation des données.

Formation PySpark | Apache Spark avec Python | Edureka

Abonnez-vous à notre chaîne YouTube pour obtenir de nouvelles mises à jour ..!

Configurer Spark avec Python (PySpark)

J'espère que vous savez comment .Donc, une fois que vous avez décompressé la lime Spark, installée il et a ajouté son chemin vers .bashrc fichier, vous devez tapersource .bashrc

export SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 export PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

Pour ouvrir le shell pyspark, vous devez taper la commande./bin/pyspark

Spark dans l'industrie

Apache Spark en raison de ses fonctionnalités étonnantes telles que traitement en mémoire , polyglotte et traitement rapide sont utilisés par de nombreuses entreprises du monde entier à des fins diverses dans divers secteurs:

Yahoo utilise Apache Spark pour ses capacités d'apprentissage automatique afin de personnaliser ses actualités, ses pages Web et également ses publicités ciblées. Ils utilisent Spark avec python pour découvrir quel type d'actualités - les utilisateurs sont intéressés à lire et à classer les actualités pour savoir quel type d'utilisateurs serait intéressé à lire chaque catégorie d'actualités.

TripAdvisor utilise apache spark pour conseiller des millions de voyageurs en comparant des centaines de sites Web pour trouver les meilleurs prix d'hôtels pour ses clients. Le temps de lecture et de traitement des avis des hôtels dans un format lisible se fait avec l'aide d'Apache Spark.

L'une des plus grandes plates-formes de commerce électronique au monde Alibaba exécute certaines des plus grandes tâches Apache Spark au monde afin d'analyser des centaines de pétaoctets de données sur sa plateforme de commerce électronique.

PySpark SparkContext et flux de données

En parlant de Spark avec Python, travailler avec les RDD est rendu possible par la bibliothèque Py4j. PySpark Shell relie l'API Python à Spark Core et initialise le contexte Spark. Contexte Spark est le cœur de toute application d'étincelle.

  1. Le contexte Spark configure les services internes et établit une connexion à un environnement d'exécution Spark.
  2. L'objet sparkcontext dans le programme pilote coordonne tout le processus distribué et permet l'allocation de ressources.
  3. Les gestionnaires de cluster fournissent des exécuteurs, qui sont des processus JVM avec logique.
  4. L'objet SparkContext envoie l'application aux exécuteurs.
  5. SparkContext exécute des tâches dans chaque exécuteur.

Cas d'utilisation de PySpark KDD

Voyons maintenant un cas d’utilisation de Coupe KDD’99 (Concours international d'outils de découverte des connaissances et d'exploration de données).Ici, nous prendrons une fraction du jeu de données car le jeu de données d'origine est trop grand

import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')

CRÉER RDD:
Nous pouvons maintenant utiliser ce fichier pour créer notre RDD .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file)

FILTRATION:

Supposons que nous voulons compter combien de normaux. interactions que nous avons dans notre ensemble de données. nous pouvons filtre notre RDD raw_data comme suit.

normal_raw_data = raw_data.filter (lambda x: 'normal.' en x)

COMPTER:

Maintenant nous pouvons compter combien d'éléments nous avons dans le nouveau RDD.

from time import time t0 = time () normal_count = normal_raw_data.count () tt = time () - t0 print 'Il y a {} interactions' normales '' .format (normal_count) print 'Comptage terminé en {} secondes' .format (rond (tt, 3))

Production:

Il y a 97278 interactions `` normales ''. Comptage effectué en 5,951 secondes

CARTOGRAPHIE:

Dans ceCasnous voulons lire notre fichier de données au format CSV. Nous pouvons le faire en appliquant une fonction lambda à chaque élément du RDD comme suit. Ici, nous utiliserons le transformation map () et take ().

depuis pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analyse terminée en {} secondes '.format (round (tt, 3)) pprint (head_rows [0])

Production:

Analyse terminée en 1,715 secondes [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

SCISSION:

Nous voulons maintenant que chaque élément du RDD soit une paire clé-valeur où la clé est la balise (par exemple Ordinaire ) et la valeur est la liste complète des éléments qui représentent la ligne dans le fichier au format CSV. Nous pourrions procéder comme suit. Ici, nous utilisons le line.split () et map ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Production: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0.00 ', u'1.00', .... U'normal. '])

L'ACTION COLLECT:

Ici, nous allons utiliser l'action collect (). Il récupérera tous les éléments de RDD en mémoire. Pour cette raison, il doit être utilisé avec précaution lorsque vous travaillez avec de grands RDD.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Données collectées en {} secondes'.format (round (tt, 3))

Production:

Données collectées en 17.927 secondes

Cela a pris plus de temps que toute autre action que nous avons utilisée auparavant, bien sûr. Chaque nœud de travail Spark qui a un fragment du RDD doit être coordonné afin de récupérer sa partie, puis de tout réduire ensemble.

Comme dernier exemple combinant tous les précédents, nous voulons collecter tous lesOrdinaireinteractions sous forme de paires clé-valeur.

# obtenir les données du fichier data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # analyser en paires clé-valeur key_csv_data = raw_data.map (parse_interaction) # filtrer les interactions de clés normales normal_key_interactions = key_csv_data.fil lambda x: x [0] == 'normal.') # collect all t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Données collectées en {} secondes '.format (round (tt, 3)) print' Il existe {} des interactions 'normales' .format (normal_count)

Production:

Données collectées en 12.485 secondes Il y a 97278 interactions normales

Alors ça y est, les gars!

J'espère que vous avez apprécié ce blog Spark avec Python. Si vous lisez ceci, félicitations! Vous n'êtes plus un novice de PySpark. Essayez maintenant cet exemple simple sur vos systèmes.

Maintenant que vous avez compris les bases de PySpark, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Edureka Formation à la certification Python Spark à l'aide de PySpark est conçu pour vous fournir les connaissances et les compétences nécessaires pour devenir un développeur Spark réussi à l'aide de Python et vous préparer à l'examen de certification Cloudera Hadoop et Spark Developer (CCA175).

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.