Tutoriel PySpark Dataframe - Programmation PySpark avec Dataframes

Dans ce blog du didacticiel PySpark Dataframe, vous découvrirez les transformations et les actions dans Apache Spark avec plusieurs exemples.

Dataframes est un mot à la mode dans l'industrie de nos jours. Les gens ont tendance à l'utiliser avec les langages populaires utilisés pour l'analyse de données comme Python, Scala et R.De plus, avec le besoin évident de gérer des analyses complexes et des tâches de fusion pour le Big Data, Python pour Spark ou est devenue aujourd'hui l'une des compétences les plus recherchées de l'industrie.Alors, pourquoi tout le monde l'utilise-t-il autant? Comprenons cela avec notre Tutoriel PySpark Dataframe Blog. Dans ce blog, je couvrirai les sujets suivants:





Tutoriel PySpark Dataframe: Que sont les Dataframes?

Dataframes fait généralement référence à une structure de données, qui est de nature tabulaire. Il représente les lignes, dont chacune se compose d'un certain nombre d'observations. Les lignes peuvent avoir une variété de formats de données ( Hétérogène ), alors qu'une colonne peut avoir des données du même type de données ( Homogène ). Les blocs de données contiennent généralement des métadonnées en plus des données, par exemple, des noms de colonnes et de lignes.

Dataframe-Pyspark-Dataframe-Tutorial



Nous pouvons dire que les Dataframes ne sont rien, mais une structure de données bidimensionnelle, similaire à une table SQL ou à une feuille de calcul. Passons maintenant à ce didacticiel PySpark Dataframe et comprenons pourquoi exactement nous avons besoin de Pyspark Dataframe?

Pourquoi avons-nous besoin de Dataframes?

Traitement des données structurées et semi-structurées



Dataframessont conçus pour traiterà grand collecte de données structurées et semi-structurées . Les observations dans Spark DataFrame sont organisées sous des colonnes nommées, ce qui aide Apache Spark à comprendre le schéma d'un DataFrame. Cela aide Spark à optimiser le plan d'exécution de ces requêtes. Il peut également gérer Pétaoctets de données.

2.S licing et dés

Trame de données ALes IP prennent généralement en charge des méthodes élaborées pour trancher et couper en dés les données. Il comprendopérationns comme «sélectionner» des lignes, des colonnes et des cellules par nom ou par numéro, filtrer les lignes, etc. Les données statistiques sont généralement très désordonnées et contiennent beaucoup de valeurs manquantes et erronées et des violations de plage. Ainsi, une caractéristique extrêmement importante des trames de données est la gestion explicite des données manquantes.

3. Sources de données

DataFrame prend en charge un large éventail de formats de données et de sources, nous examinerons cela plus tard dans ce blog du didacticiel Pyspark Dataframe. Ils peuvent recueillir des données provenant de diverses sources.

4. support pour plusieurs langues

Il prend en charge l'API pour différents langages tels que Python, R, Scala, Java,ce qui facilite son utilisation par des personnes ayant des antécédents en programmation différents.

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

Caractéristiques des Dataframes

  • Les dataframes sont Distribué dans la nature, ce qui en fait une structure de données tolérante aux pannes et hautement disponible.
  • Évaluation paresseuse est une stratégie d'évaluation qui contient l'évaluation d'une expression jusqu'à ce que sa valeur soit nécessaire. Cela évite les évaluations répétées. L'évaluation différée dans Spark signifie que l'exécution ne démarrera pas tant qu'une action ne sera pas déclenchée. Dans Spark, l'image de l'évaluation paresseuse survient lorsque les transformations Spark se produisent.
  • Les dataframes sont Immuable dans la nature. Par immuable, j'entends que c'est un objet dont l'état ne peut pas être modifié après sa création.Mais nous pouvons transformersesvaleurs en appliquantun certaintransformation, comme dans les RDD.

Sources de trame de données PySpark

Les dataframes dans Pyspark peuvent être créés de plusieurs manières:

Les données peuvent être chargées via un CSV, JSON, XML ou un dossier Parquet. Il peut également être créé à l'aide d'un RDD et via toute autre base de données, comme Ruche ou Cassandra ainsi que. Il peut également recevoir des données de HDFS ou du système de fichiers local.

Création de Dataframe

Avançons avec ce blog du didacticiel PySpark Dataframe et comprenons comment créer des Dataframes.

Nous créerons des instances d'employé et de service.

from pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'salaire') employee1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Employé ('Daniel', 'meng', 'daniel@stanford.edu', 120000) employé3 = Employé ('Muriel', Aucun, 'muriel@waterloo.edu', 140000) employé4 = Employé ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) employee5 = Employee (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Employee [0]) print (employee3) department1 = Row (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', nom =' DEV ')

Ensuite, nous allons créer une instance DepartmentWithEmployees à partir de l'employé et des départements

departmentWithEmployees1 = Ligne (service = service1, employés = [employé1, employé2, employé5]) departmentWithEmployees2 = Ligne (service = service2, employés = [employé3, employé4]) departmentWithEmployees3 = Ligne (service = service3, employés = [employé1, employé4, employé3 ]) departmentWithEmployees4 = Ligne (service = service4, employés = [employé2, employé3])

Créons notre Dataframe à partir de la liste des lignes

départementsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (départementsWithEmployees_Seq) affichage (dframe) dframe.show ()

Exemple 1 de Pyspark Dataframes: ensemble de données de la Coupe du Monde de la FIFA

Ici, nous avons pris le jeu de données des joueurs de la Coupe du Monde de la FIFA. Nous allons charger ces données au format CSVdans unedataframe, puis nous découvrirons les différentes transformations et actions qui peuvent être effectuées sur ce dataframe.

Lecture de données à partir d'un fichier CSV

Chargeons les données à partir d'un fichier CSV. Ici, nous allons utiliser le spark.read.csv méthode pour charger les données dans un dataframe fifa_df. La méthode actuelle est spark.read.format [csv / json] .

fifa_df = spark.read.csv ('chemin-du-fichier / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Schéma de Dataframe

Pour jeter un oeil au schéma ie. la structure du dataframe, nous utiliserons le printSchema méthode. Cela nous donnera les différentes colonnes de notre dataframe ainsi que le type de données et les conditions Nullable pour cette colonne particulière.

fifa_df.printSchema ()

Noms et nombre de colonnes (lignes et colonnes)

Lorsque nous voulons examiner les noms et le nombre de lignes et de colonnes d'un Dataframe particulier, nous utilisons les méthodes suivantes.

fifa_df.columns // Noms des colonnes fifa_df.count () // Nombre de lignes len (fifa_df.columns) // Nombre de colonnes

37784 8

Décrire une colonne particulière

Si nous voulons voir le résumé d'une colonne particulière d'un Dataframe, nous utilisons le décrit méthode. Cette méthode nous donne le résumé statistique de la colonne donnée, si elle n'est pas spécifiée, elle fournit le résumé statistique de la base de données.

lesquels des énoncés suivants sont des exemples d'instructions de contrôle?
fifa_df.describe ('Nom de l'entraîneur'). show () fifa_df.describe ('Position'). show ()

Sélection de plusieurs colonnes

Si nous voulons sélectionner des colonnes particulières dans le dataframe, nous utilisons le sélectionner méthode.

fifa_df.select ('Nom du joueur', 'Nom de l'entraîneur'). show ()

Sélection de plusieurs colonnes distinctes

fifa_df.select ('Nom du joueur', 'Nom de l'entraîneur'). distinct (). show ()

Filtrage des données

Afin de filtrer les données, selon la condition spécifiée, nous utilisons le filtre commander. Ici, nous filtrons notre trame de données en fonction de la condition selon laquelle l'ID de correspondance doit être égal à 1096, puis nous calculons le nombre d'enregistrements / de lignes dans la sortie filtrée.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // pour obtenir le décompte

Filtrage des données (paramètres multiples)

Nous pouvons filtrer nos données en fonction de plusieurs conditions (ET ou OU)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()

Tri des données (OrderBy)

Pour trier les données, nous utilisons le Commandé par méthode. Par défaut, il trie dans l'ordre croissant, mais nous pouvons également le changer en ordre décroissant.

fifa_df.orderBy (fifa_df.MatchID) .show ()

Exemple 2 de Dataframes PySpark: ensemble de données Superheros

Chargement des données

Ici, nous allons charger les données de la même manière que nous l'avons fait précédemment.

Superhero_df = spark.read.csv ('chemin du fichier / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtrer les données

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Male Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Female Heros Count

Regrouper les données

Par groupe est utilisé pour regrouper le dataframe en fonction de la colonne spécifiée. Ici, nous regroupons le dataframe en fonction de la colonne Race puis avec le compter fonction, nous pouvons trouver le décompte de la race particulière.

Race_df = Superhero_df.groupby ('Race') .count () .show ()

Exécution de requêtes SQL

Nous pouvons également transmettre des requêtes SQL directement à n'importe quel dataframe, pour cela nous devons créer une table à partir du dataframe en utilisant le registerTempTable puis utilisez la méthode sqlContext.sql () pour transmettre les requêtes SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()

sqlContext.sql ('select distinct (Eye_color) from superhero_table'). show ()

sqlContext.sql ('select distinct (Eye_color) from superhero_table'). count ()

2. 3

sqlContext.sql ('select max (Weight) from superhero_table'). show ()

Et avec cela, nous arrivons à la fin de ce didacticiel PySpark Dataframe.

Alors ça y est, les gars!

J'espère que vous avez une idée de ce qu'est PySpark Dataframe, pourquoi est-il utilisé dans l'industrie et de ses fonctionnalités dans ce blog didacticiel PySpark Dataframe. Félicitations, vous n'êtes plus un débutant en Dataframes. Si vous souhaitez en savoir plus sur PySpark et comprendre les différents cas d'utilisation de l'industrie, consultez notre Spark avec Python et Tutoriel PySpark Blog.