Tutorial PySpark Dataframe - Programació PySpark amb Dataframes



En aquest bloc de tutorial PySpark Dataframe, aprendreu sobre transformacions i accions a Apache Spark amb diversos exemples.

Dataframes és una paraula de moda a la indústria actualment. La gent sol utilitzar-lo amb llenguatges populars que s’utilitzen per a l’anàlisi de dades com Python, Scala i R.A més, amb la evident necessitat de manejar tasques complexes d’anàlisi i simulacre per a Big Data, Python for Spark o s’ha convertit en una de les habilitats més buscades de la indústria actual.Llavors, per què tothom l’utilitza tant? Entenguem això amb el nostre PySpark Dataframe Tutorial bloc. En aquest bloc tractaré els temes següents:





Tutorial PySpark Dataframe: què són els Dataframes?

Els Dataframes es refereixen generalment a una estructura de dades que té un caràcter tabular. Representa les files, cadascuna de les quals consisteix en diverses observacions. Les files poden tenir diversos formats de dades ( Heterogènia ), mentre que una columna pot tenir dades del mateix tipus de dades ( Homogeni ). Els marcs de dades solen contenir algunes metadades a més de dades, per exemple, noms de columnes i files.

Dataframe-Pyspark-Dataframe-Tutorial



Podem dir que els Dataframes no són res, sinó una estructura de dades bidimensional, similar a una taula SQL o un full de càlcul. Ara continuem amb aquest tutorial PySpark Dataframe i entenem per què necessitem exactament Pyspark Dataframe?

Per què necessitem Dataframes?

1. Processament de dades estructurades i semiestructurades



Dataframesestan dissenyats per processara gran recopilació de dades estructurades i semiestructurades . Les observacions a Spark DataFrame s’organitzen en columnes anomenades, cosa que ajuda Apache Spark a entendre l’esquema d’un DataFrame. Això ajuda Spark a optimitzar el pla d'execució d'aquestes consultes. També es pot suportar Petabytes de dades.

2.S llepar i tallar a daus

Marc de dades AEls IP normalment admeten mètodes elaborats per a tallar i tallar a daus les dades. Inclouoperacións, com ara 'seleccionar' files, columnes i cel·les per nom o per número, filtrar files, etc. Les dades estadístiques solen ser molt desordenades i contenen molts valors que falten i són incorrectes i infraccions de rang. Per tant, una característica d’importància crítica dels marcs de dades és la gestió explícita de les dades que falten.

3. Fonts de dades

DataFrame és compatible amb una àmplia gamma de fonts i formats de dades, més endavant ho examinarem en aquest bloc Tutorial Pyspark Dataframe. Poden obtenir dades de diverses fonts.

4. Suport per a diversos idiomes

Compta amb API per a diferents llenguatges com Python, R, Scala, Java,cosa que facilita l’ús de persones amb diferents antecedents de programació.

Subscriviu-vos al nostre canal de youtube per obtenir noves actualitzacions ...!

Característiques dels Dataframes

  • Els marcs de dades ho són Distribuït a Nature, cosa que el fa tolerant a fallades i una estructura de dades altament disponible.
  • Avaluació mandrosa és una estratègia d'avaluació que manté l'avaluació d'una expressió fins que es necessita el seu valor. Evita l'avaluació repetida. Una avaluació mandrosa a Spark significa que l'execució no s'iniciarà fins que es desencadeni una acció. A Spark, la imatge de l’avaluació mandrosa apareix quan es produeixen transformacions de Spark.
  • Els marcs de dades ho són Immutable a la natura. Amb immutable vull dir que és un objecte l’estat del qual és no es pot modificar després de la seva creació.Però podem transformar-nosla sevavalors aplicantun certtransformació, com en els RDD.

Fonts del marc de dades PySpark

Els Dataframes a Pyspark es poden crear de diverses maneres:

Les dades es poden carregar mitjançant un fitxer CSV, JSON, XML o un fitxer de parquet. També es pot crear mitjançant un existent RDD i mitjançant qualsevol altra base de dades, com ara Rusc o bé Cassandra també. També pot recollir dades de HDFS o del sistema de fitxers local.

Creació de Dataframe

Seguim endavant amb aquest bloc Tutorial PySpark Dataframe i entenem com crear Dataframes.

Crearem instàncies d’empleats i departaments.

from pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'salari') employee1 = Empleat ('Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Employee ('Daniel', 'meng', 'daniel@stanford.edu', 120000) employee3 = Employee ('Muriel', None, 'muriel@waterloo.edu', 140000) employee4 = Employee ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) employee5 = Empleat (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) imprimir (empleat [0]) imprimir (empleat3) departament1 = Fila (identificador) = '123456', name = 'HR') departament2 = Fila (id = '789012', nom = 'OPS') departament3 = Fila (id = '345678', name = 'FN') departament4 = Fila (id = ' 901234 ', name =' DEV ')

A continuació, crearem una instància DepartmentWithEmployees des de Employee and Departments

departmentWithEmployees1 = Fila (departament = departament1, empleats = [empleat1, empleat2, empleat5]) departmentWithEmployees2 = Fila (departament = departament2, empleats = [empleat3, empleat4]) departmentWithEmployees3 = Fila (departament = departament3, empleats = [empleat1, empleat4, empleat3] ]) departmentWithEmployees4 = Fila (departament = departament4, empleats = [empleat2, empleat3])

Creem el nostre Dataframe a partir de la llista de files

departmentWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentWithEmployees_Seq) display (dframe) dframe.show ()

Pyspark Dataframes Exemple 1: conjunt de dades de la Copa Mundial de la FIFA

Aquí hem pres el conjunt de dades de jugadors de la Copa Mundial de la FIFA. Carregarem aquestes dades en format CSVen unDataframe i, a continuació, coneixerem les diferents transformacions i accions que es poden realitzar en aquest Dataframe.

Lectura de dades del fitxer CSV

Carregem les dades d'un fitxer CSV. Aquí utilitzarem el fitxer spark.read.csv mètode per carregar les dades en un marc de dades fifa_df. El mètode real és spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Esquema de Dataframe

Per fer una ullada a l’esquema, és a dir. utilitzarem l’estructura del marc de dades printSchema mètode. Això ens proporcionarà les diferents columnes del nostre marc de dades juntament amb el tipus de dades i les condicions nul·les d’aquesta columna en particular.

fifa_df.printSchema ()

Noms i recompte de columnes (files i columnes)

Quan volem fer una ullada als noms i al recompte del nombre de files i columnes d’un Dataframe concret, fem servir els mètodes següents.

fifa_df.columns // Noms de columnes fifa_df.count () // Nombre de files len (fifa_df.columns) // Nombre de columnes

37.784 8

Descripció d'una columna particular

Si volem fer una ullada al resum d'alguna columna concreta d'un Dataframe, fem servir el fitxer descriu mètode. Aquest mètode ens proporciona el resum estadístic de la columna donada, si no s’especifica, proporciona el resum estadístic del marc de dades.

menú desplegable a angularjs
fifa_df.describe ('Nom de l'entrenador'). show () fifa_df.describe ('Posició'). show ()

Selecció de diverses columnes

Si volem seleccionar columnes concretes del marc de dades, utilitzarem el fitxer seleccioneu mètode.

fifa_df.select ('Nom del jugador', 'Nom de l'entrenador'). show ()

Selecció de diverses columnes diferents

fifa_df.select ('Nom del jugador', 'Nom de l'entrenador'). distinct (). show ()

Filtratge de dades

Per filtrar les dades, segons la condició especificada, fem servir el fitxer filtre comandament. Aquí filtrem el nostre marc de dades en funció de la condició que Match ID ha de ser igual a 1096 i, a continuació, calculem quants registres / files hi ha a la sortida filtrada.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // per obtenir el recompte

Filtre de dades (diversos paràmetres)

Podem filtrar les nostres dades en funció de diverses condicions (AND o OR)

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

Ordenació de dades (OrderBy)

Per ordenar les dades utilitzem el fitxer Demanat per mètode. Per defecte, s’ordena en ordre ascendent, però també podem canviar-lo per ordre descendent.

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

PySpark Dataframes Exemple 2: conjunt de dades de superheros

Carregant les dades

Aquí carregarem les dades de la mateixa manera que anteriorment.

Superhero_df = spark.read.csv ('ruta-del-fitxer / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtrar les dades

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

Agrupació de les dades

Agrupar per s'utilitza per agrupar el marc de dades en funció de la columna especificada. Aquí, agrupem el marc de dades en funció de la columna Carrera i després amb el fitxer comptar funció, podem trobar el recompte de la raça en particular.

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

Realització de consultes SQL

També podem passar consultes SQL directament a qualsevol marc de dades, per això hem de crear una taula a partir del marc de dades mitjançant registerTempTable i utilitzeu el mètode sqlContext.sql () per passar les consultes 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 ()

23

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

I amb això, arribem al final d’aquest tutorial de PySpark Dataframe.

Així és això, nois!

Espero que tingueu una idea de què és PySpark Dataframe, per què s’utilitza a la indústria i les seves funcions d’aquest blog Tutorial de PySpark Dataframe. Enhorabona, ja no sou novell de Dataframes. Si voleu obtenir més informació sobre PySpark i conèixer els diferents casos d’ús de la indústria, consulteu els nostres Spark amb Python i PySpark Tutorial Blog.