Datu ietvari mūsdienās ir nozares vārds. Cilvēki mēdz to izmantot ar populārām valodām, kuras izmanto datu analīzei, piemēram, Python, Scala un R.Turklāt ar acīmredzamo nepieciešamību apstrādāt sarežģītas analīzes un pieslēgšanas uzdevumus Big Data, Python for Spark vai ir kļuvusi par vienu no pieprasītākajām prasmēm šajā nozarē mūsdienās.Tātad, kāpēc visi to tik daudz lieto? Sapratīsim to ar mūsu PySpark Dataframe apmācība emuārs. Šajā emuārā es apskatīšu šādas tēmas:
- Kas ir datu ietvari?
- Kāpēc mums ir nepieciešami datu ietvari?
- Dataframe iezīmes
- PySpark datu ietvara avoti
- Datu rāmja izveide
- Pyspark datu ietvari ar FIFA Pasaules kausa un supervaroņu datu kopu
Pamācība PySpark Dataframe: Kas ir Dataframe?
Datu rāmji parasti attiecas uz datu struktūru, kurai ir tabulas raksturs. Tas apzīmē rindas, no kurām katra sastāv no vairākiem novērojumiem. Rindām var būt dažādi datu formāti ( Neviendabīgs ), savukārt kolonnā var būt tāda paša veida dati ( Homogēns ). Datu rāmjos papildus datiem, piemēram, kolonnu un rindu nosaukumiem, parasti ir daži metadati.
Mēs varam teikt, ka Dataframes nav nekas cits kā divdimensiju datu struktūra, līdzīga SQL tabulai vai izklājlapai. Tagad ejam uz priekšu ar šo PySpark Dataframe apmācību un saprotam, kāpēc tieši mums ir nepieciešams Pyspark Dataframe?
Kāpēc mums ir nepieciešami datu ietvari?
1. Strukturēto un daļēji strukturēto datu apstrāde
Datu ietvariir paredzēti apstrādeiuz liels strukturētu, kā arī daļēji strukturētu datu vākšana . Novērojumi programmā Spark DataFrame tiek organizēti zem nosauktajām kolonnām, kas palīdz Apache Spark saprast DataFrame shēmu. Tas palīdz Spark optimizēt izpildes plānu šiem vaicājumiem. Tas var arī tikt galā Petabaiti datu.
2.S licencēšana un kubiņos
Datu rāmis API parasti atbalsta sarežģītas metodes sagriešana un sagriešana dati. Tas iekļaujdarbībaPiemēram, rindu, kolonnu un šūnu “atlase” pēc nosaukuma vai numura, rindu filtrēšana utt. Statistikas dati parasti ir ļoti neskaidri un satur daudz trūkstošu un nepareizu vērtību un diapazona pārkāpumu. Tāpēc kritiski svarīga datu rāmju iezīme ir skaidru trūkstošo datu pārvaldība.
3. Datu avoti
DataFrame atbalsta plašu datu formātu un avotu klāstu, mēs to apskatīsim vēlāk šajā Pyspark Dataframe apmācības emuārā. Viņi var iegūt datus no dažādiem avotiem.
4. Atbalsts vairākām valodām
Tam ir API atbalsts dažādām valodām, piemēram, Python, R, Scala, Java,kas atvieglo to lietošanu cilvēkiem ar dažādu programmēšanas fonu.
Abonējiet mūsu youtube kanālu, lai iegūtu jaunus atjauninājumus ..!
Dataframe iezīmes
- Datu ietvari ir Izplatīts dabā, kas padara to par kļūdu tolerantu un ļoti pieejamu datu struktūru.
- Slinks vērtējums ir novērtēšanas stratēģija, kas notur izteiksmes novērtēšanu, līdz tās vērtība ir nepieciešama. Tas ļauj izvairīties no atkārtotas novērtēšanas. Slinks novērtējums Spark nozīmē, ka izpilde netiks sākta, kamēr nav aktivizēta darbība. Sparkā slinka vērtējuma aina nāk, kad notiek Spark transformācijas.
- Datu ietvari ir Nemaināms dabā. Ar nemainīgu es domāju, ka tas ir objekts, kura stāvoklis nevar modificēt pēc tā izveidošanas.Bet mēs varam pārveidotiestāvērtības, piemērojotzināmstransformācija, tāpat kā RDD.
PySpark datu ietvara avoti
Datu kadrus Pyspark var izveidot vairākos veidos:
Datus var ielādēt caur a CSV, JSON, XML vai parketa fails. To var izveidot arī, izmantojot esošu RDD un caur jebkuru citu datu bāzi, piemēram Stropu vai Kasandra arī. Tas var arī uzņemt datus no HDFS vai vietējās failu sistēmas.
Datu rāmja izveide
Pārejam uz priekšu ar šo PySpark Dataframe Tutorial emuāru un sapratīsim, kā izveidot Dataframe.
Mēs izveidosim darbinieku un nodaļu gadījumus.
from pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'alga') darbinieks1 = Darbinieks ('Basher', 'armbrust', 'bash@edureka.co', 100000) darbinieks2 = Darbinieks ('Daniel', 'meng', 'daniel@stanford.edu', 120000) darbinieks3 = darbinieks ('Muriel', nav, 'muriel@waterloo.edu', 140000) darbinieks4 = darbinieks ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) darbinieks5 = darbinieks (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (darbinieks [0]) print (darbinieks3) nodaļa1 = rinda (id) = '123456', name = 'HR') departaments2 = Rindas (id = '789012', nosaukums = 'OPS') departaments3 = Rindas (id = '345678', nosaukums = 'FN') departaments4 = Rinda (id = ' 901234 ', nosaukums =' DEV ')
Pēc tam mēs izveidosim DepartmentWithEmployees gadījumu no darbinieka un departamenta
departaments ar darbiniekiem1 = rinda (departaments = nodaļa1, darbinieki = [darbinieks1, darbinieks2, darbinieks5]) departaments ar darbiniekiem2 = rinda (nodaļa = nodaļa2, darbinieki = [darbinieks3, darbinieks4]) departaments ar darbiniekiem3 = rinda (nodaļa = nodaļa3, darbinieki = [darbinieks1, darbinieks4, darbinieks3 ]) departaments ar darbiniekiem4 = rinda (nodaļa = nodaļa4, darbinieki = [darbinieks2, darbinieks3])
Izveidosim savu Dataframe no rindu saraksta
departmentsWithEmployees_Seq = [departamentsWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) displejs (dframe) dframe.show ()
Pyspark Dataframes 1. piemērs: FIFA Pasaules kausa datu kopa
Šeit mēs esam paņēmuši FIFA Pasaules kausa spēlētāju datu kopu. Mēs ielādēsim šos datus CSV formātāuz aun tad mēs uzzināsim par dažādām transformācijām un darbībām, kuras var veikt ar šo datu ietvaru.
Datu lasīšana no CSV faila
Ielādēsim datus no CSV faila. Šeit mēs izmantosim spark.read.csv metode datu ielādēšanai datu ietvarā fifa_df. Faktiskā metode ir spark.read.format [csv / json] .
fifa_df = spark.read.csv ('faila ceļš / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()
Dataframe shēma
Apskatīt shēmu, ti. datu ietvara struktūru, mēs izmantosim printSchema metodi. Tas mums dos dažādas mūsu datu ietvara kolonnas, kā arī datu tipu un šīs konkrētās kolonnas nenovēršamos nosacījumus.
fifa_df.printSchema ()
Kolonnu nosaukumi un skaits (rindas un kolonna)
Kad mēs vēlamies apskatīt konkrētā Dataframe nosaukumus un rindu un kolonnu skaitu, mēs izmantojam šādas metodes.
fifa_df.columns // kolonnu nosaukumi fifa_df.count () // rindu skaits len (fifa_df.columns) // kolonnu skaits
37784 8
Atsevišķas kolonnas aprakstīšana
Ja mēs vēlamies apskatīt kādas konkrētas Dataframe kolonnas kopsavilkumu, mēs izmantojam apraksta metodi. Šī metode dod mums dotās kolonnas statistisko kopsavilkumu, ja tā nav norādīta, tā nodrošina datu ietvara statistisko kopsavilkumu.
palaist stropu vaicājumu no komandrindas
fifa_df.describe ('Trenera vārds'). show () fifa_df.describe ('Amats'). show ()
Vairāku kolonnu atlase
Ja mēs vēlamies no datu ietvara atlasīt noteiktas kolonnas, mēs izmantojam atlasiet metodi.
fifa_df.select ('Spēlētāja vārds', 'Trenera vārds'). show ()
Atšķirīgu vairāku kolonnu atlase
fifa_df.select ('Spēlētāja vārds', 'Trenera vārds'). atšķirīgs (). Parādīt ()
Datu filtrēšana
Lai filtrētu datus atbilstoši norādītajam nosacījumam, mēs izmantojam filtru komandu. Šeit mēs filtrējam mūsu datu ietvaru, pamatojoties uz nosacījumu, ka atbilstības ID jābūt vienādam ar 1096, un pēc tam mēs aprēķinām, cik ierakstu / rindu ir filtrētajā izvadā.
fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // lai iegūtu skaitli
Datu filtrēšana (vairāki parametri)
Mēs varam filtrēt savus datus, pamatojoties uz vairākiem nosacījumiem (UN vai OR)
fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()
Datu kārtošana (OrderBy)
Lai kārtotu datus, kurus mēs izmantojam Sakārtot pēc metodi. Pēc noklusējuma tas tiek kārtots augošā secībā, taču mēs to varam mainīt arī uz dilstošo secību.
fifa_df.orderBy (fifa_df.MatchID) .show ()
PySpark Dataframes 2. piemērs: Superheros datu kopa
Notiek datu ielāde
Šeit mēs datus ielādēsim tāpat kā iepriekš.
Superhero_df = spark.read.csv ('faila ceļš / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)
Datu filtrēšana
Superhero_df.filter (Superhero_df.Gender == 'Male'). Skaits () // Vīriešu herosu skaits Superhero_df.filter (Superhero_df.dzimums == 'Sieviešu'). Skaits () // Sieviešu herosu skaits
Datu grupēšana
GroupBy tiek izmantots datu ietvara grupēšanai, pamatojoties uz norādīto kolonnu. Šeit mēs grupējam datu ietvaru, pamatojoties uz kolonnu Race un pēc tam ar skaitīt funkciju, mēs varam atrast konkrēto sacensību skaitu.
Race_df = Superhero_df.groupby ('Race'). Skaits (). Show ()
SQL vaicājumu veikšana
Mēs varam arī nodot SQL vaicājumus tieši jebkuram datu ietvaram, tāpēc mums no datu ietvara jāizveido tabula, izmantojot registerTempTable metodi un pēc tam izmantojiet sqlContext.sql () nodot SQL vaicājumus.
Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()
sqlContext.sql ('atlasiet atšķirīgu (Acu krāsa) no superhero_table'). show ()
sqlContext.sql ('atlasiet atšķirīgu (Acu krāsa) no superhero_table'). skaits ()
2. 3
sqlContext.sql ('superhero_table atlasiet maksimālo (svaru)'). show ()
Un līdz ar to mēs esam pabeiguši šo PySpark Dataframe apmācību.
Tā tas ir, puiši!
Es ceru, ka jūs, puiši, uzzinājāt, kas ir PySpark Dataframe, kāpēc tas tiek izmantots nozarē un tā funkcijas šajā PySpark Dataframe apmācības emuārā. Apsveicam, jūs vairs neesat Dataframes iesācējs. Ja vēlaties uzzināt vairāk par PySpark un izprast dažādus nozares izmantošanas gadījumus, ieskatieties mūsu Dzirkstele ar Python un PySpark apmācība Emuārs.