Урок за PySpark Dataframe - Програмиране на PySpark с рамки за данни



В този блог с уроци на PySpark Dataframe ще научите за трансформациите и действията в Apache Spark с множество примери.

Dataframes е модна дума в индустрията в наши дни. Хората са склонни да го използват с популярни езици, използвани за анализ на данни като Python, Scala и R.Плюс това, с очевидната необходимост от обработка на сложен анализ и задачи за промяна на големи данни, Python за Spark или се превърна в едно от най-търсените умения в индустрията днес.И така, защо всички го използват толкова много? Нека разберем това с нашите Урок за PySpark Dataframe блог. В този блог ще разгледам следните теми:





Урок за PySpark Dataframe: Какво представляват рамките за данни?

Кадрите на данни обикновено се отнасят до структура от данни, която има табличен характер. Той представлява редове, всеки от които се състои от редица наблюдения. Редовете могат да имат различни формати на данни ( Хетерогенни ), докато колона може да съдържа данни от същия тип данни ( Хомогенна ). Рамките за данни обикновено съдържат някои метаданни в допълнение към данните, например имена на колони и редове.

Dataframe-Pyspark-Dataframe-Tutorial



Можем да кажем, че фреймовете на данни не са нищо друго, а двуизмерна структура на данните, подобна на SQL таблица или електронна таблица. Сега нека продължим напред с този урок за PySpark Dataframe и да разберем защо точно се нуждаем от Pyspark Dataframe?

Защо се нуждаем от рамки за данни?

1. Обработка на структурирани и полуструктурирани данни



Рамки за данниса предназначени за обработкада се голям събиране на структурирани, както и полуструктурирани данни . Наблюденията в Spark DataFrame се организират под именувани колони, което помага на Apache Spark да разбере схемата на DataFrame. Това помага на Spark да оптимизира плана за изпълнение на тези заявки. Той също може да се справи Петабайти на данните.

2.S лицензиране и кубчета

Рамка за данни API обикновено поддържа сложни методи за нарязване и нарязване на кости информацията. Включваоперацияns като „избор“ на редове, колони и клетки по име или по номер, филтриране на редове и др. Статистическите данни обикновено са много разхвърляни и съдържат много липсващи и грешни стойности и нарушения на диапазона. Така че критично важна характеристика на рамките за данни е изричното управление на липсващи данни.

3. Източници на данни

DataFrame има поддръжка за широк спектър от формати и източници на данни, ще разгледаме това по-късно в този блог с уроци за Pyspark Dataframe. Те могат да приемат данни от различни източници.

4. Поддръжка за множество езици

Той има поддръжка на API за различни езици като Python, R, Scala, Java,което улеснява използването му от хора с различен опит в програмирането.

Абонирайте се за нашия канал в YouTube, за да получавате нови актуализации ..!

Характеристики на Dataframes

  • Рамките за данни са Разпределени в природата, което го прави толерантен към повреди и силно достъпна структура от данни.
  • Мързелива оценка е стратегия за оценка, която държи оценката на даден израз, докато не е необходима неговата стойност. Избягва се многократна оценка. Мързеливата оценка в Spark означава, че изпълнението няма да започне, докато не се задейства действие. В Spark картината на мързеливата оценка идва, когато настъпят трансформации на Spark.
  • Рамките за данни са Неизменим в природата. Под неизменяем имам предвид, че това е обект, чието състояние не могат да бъдат модифицирани след като е създаден.Но ние можем да се трансформирамесистойности чрез прилаганесигурентрансформация, както при RDD.

Източници на PySpark Dataframe

Кадрите за данни в Pyspark могат да бъдат създадени по няколко начина:

Данните могат да бъдат заредени чрез CSV, JSON, XML или пила за паркет. Той може да бъде създаден и с помощта на съществуващ RDD и чрез всяка друга база данни, като Кошера или Касандра както добре. Той може също така да приема данни от HDFS или локалната файлова система.

Създаване на рамка от данни

Нека да продължим напред с този блог за уроци на PySpark Dataframe и да разберем как да създаваме рамки за данни.

Ще създадем екземпляри на служители и отдели.

от pyspark.sql import * Служител = Ред ('firstName', 'lastName', 'email', 'pay') worker1 = Служител ('Basher', 'armbrust', 'bash@edureka.co', 100000) worker2 = Служител ('Daniel', 'meng', 'daniel@stanford.edu', 120000) служител3 = Служител ('Muriel', Няма, 'muriel@waterloo.edu', 140000) служител4 = Служител ('Рейчъл', 'wendell ',' rach_3@edureka.co ', 160000) служител5 = Служител (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Служител [0]) print (worker3) department1 = Ред (id = '123456', name = 'HR') отдел2 = ред (id = '789012', name = 'OPS') отдел3 = ред (id = '345678', name = 'FN') отдел4 = ред (id = ' 901234 ', name =' DEV ')

След това ще създадем екземпляр DepartmentWithEfficiees от служител и отдели

departmentWithEfficiees1 = Ред (отдел = отдел1, служители = [служител1, служител2, служител5]) отделСекредити2 = ред (отдел = отдел2, служители = [служител3, служител4]) отделСекрети3 = ред (отдел = отдел3, служители = [служител1, служител4, служител3 ]) departmentWithEposleees4 = Ред (отдел = отдел4, служители = [служител2, служител3])

Нека създадем нашия Dataframe от списъка с редове

departWithEfficiees_Seq = [departmentWithEfficiees1, departmentWithEfficiees2] dframe = spark.createDataFrame (departWithEfficiees_Seq) display (dframe) dframe.show ()

Pyspark Dataframes Пример 1: FIFA World Cup Dataset

Тук взехме набора от данни за играчите от Световната купа на FIFA. Ще заредим тези данни, които са в CSV форматв adataframe и след това ще научим за различните трансформации и действия, които могат да бъдат извършени върху тази рамка от данни.

Четене на данни от CSV файл

Нека да заредим данните от CSV файл. Тук ще използваме spark.read.csv метод за зареждане на данните в рамка за данни fifa_df. Действителният метод е spark.read.format [csv / json] .

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

Схема на Dataframe

За да погледнете схемата, т.е. структурата на рамката с данни, ще използваме printSchema метод. Това ще ни даде различните колони в нашия кадър с данни, заедно с типа данни и условията за нулиране за тази конкретна колона.

fifa_df.printSchema ()

Имена на колони и брой (Редове и колони)

Когато искаме да разгледаме имената и броя на редовете и колоните на конкретен Dataframe, използваме следните методи.

fifa_df.columns // Имена на колони fifa_df.count () // Брой редове len (fifa_df.columns) // Брой колони

37784 8

Описване на конкретна колона

Ако искаме да разгледаме резюмето на която и да е колона на Dataframe, използваме описва метод. Този метод ни дава статистическо обобщение на дадената колона, ако не е посочено, той предоставя статистическо обобщение на рамката с данни.

каква е разликата между css и css3
fifa_df.describe („Име на треньора“). show () fifa_df.describe („Позиция“). show ()

Избиране на няколко колони

Ако искаме да изберем конкретни колони от рамката на данни, използваме изберете метод.

fifa_df.select („Име на играч“, „Име на треньора“). show ()

Избиране на отделни няколко колони

fifa_df.select („Име на играч“, „Име на треньора“). distinct (). show ()

Филтриране на данни

За да филтрираме данните, в съответствие с посоченото условие, използваме филтър команда. Тук ние филтрираме нашата рамка от данни въз основа на условието, че идентификаторът на съвпадението трябва да е равен на 1096 и след това изчисляваме колко записа / редове има във филтрирания изход.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // за получаване на броя

Филтриране на данни (множество параметри)

Можем да филтрираме данните си въз основа на множество условия (И ИЛИ)

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

Сортиране на данни (OrderBy)

За сортиране на данните използваме Подредени по метод. По подразбиране се сортира във възходящ ред, но можем да го променим и в низходящ ред.

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

PySpark Dataframes Пример 2: Набор от данни за супергерои

Зареждане на данните

Тук ще заредим данните по същия начин, както направихме по-рано.

Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Филтриране на данните

Superhero_df.filter (Superhero_df.Gender == 'Мъж'). Count () // Брой герои от мъжки пол Superhero_df.filter (Superhero_df.Gender == 'Жена'). Count () // Брой герои на жени

Групиране на данните

Групирай по се използва за групиране на рамката от данни въз основа на посочената колона. Тук ние групираме рамката с данни въз основа на колоната Race и след това с броя функция, можем да намерим броя на конкретната раса.

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

Извършване на SQL заявки

Също така можем да предаваме SQL заявки директно на всеки кадър от данни, за което трябва да създадем таблица от рамката на данни, използвайки registerTempTable метод и след това използвайте sqlContext.sql () за предаване на SQL заявките.

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

sqlContext.sql ('изберете различен (Eye_color) от superhero_table'). show ()

sqlContext.sql ('изберете различен (Eye_color) от superhero_table'). count ()

2. 3

sqlContext.sql ('изберете max (Тегло) от superhero_table'). show ()

И с това стигнахме до края на този урок за PySpark Dataframe.

Така че това е, момчета!

Надявам се, че вие ​​сте разбрали какво е PySpark Dataframe, защо се използва в индустрията и неговите функции в този блог за уроци на PySpark Dataframe. Поздравления, вече не сте начинаещ в рамки за данни. Ако искате да научите повече за PySpark и да разберете различните случаи на използване в индустрията, разгледайте нашите Искра с Python и Урок за PySpark Блог.