PySpark Dataframe Tutorial - Программирование PySpark с помощью Dataframe



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

Dataframes - модное слово в индустрии в настоящее время. Люди склонны использовать его с популярными языками, используемыми для анализа данных, такими как Python, Scala и R.Кроме того, с очевидной необходимостью обработки сложного анализа и выполнения задач для больших данных, Python для Spark или сегодня стал одним из самых востребованных навыков в отрасли.Итак, почему все так часто его используют? Давайте разберемся в этом с нашим Руководство по PySpark Dataframe блог. В этом блоге я буду освещать следующие темы:





Руководство PySpark Dataframe: что такое Dataframe?

Фреймы данных обычно относятся к структуре данных, которая имеет табличный характер. Он представляет собой ряды, каждая из которых состоит из ряда наблюдений. Строки могут иметь различные форматы данных ( Неоднородный ), тогда как столбец может содержать данные того же типа данных ( Однородный ). Фреймы данных обычно содержат некоторые метаданные в дополнение к данным, например имена столбцов и строк.

Dataframe-Pyspark-Dataframe-Tutorial



Мы можем сказать, что фреймы данных - это не что иное, как двумерная структура данных, похожая на таблицу SQL или электронную таблицу. Теперь давайте перейдем к этому руководству по PySpark Dataframe и поймем, зачем именно нам нужен Pyspark Dataframe?

Зачем нам нужны Dataframes?

1. обработка структурированных и полуструктурированных данных



Фреймы данныхпредназначены для обработкик большой сбор как структурированных, так и полуструктурированных данных . Наблюдения в Spark DataFrame организованы по именованным столбцам, что помогает Apache Spark понять схему DataFrame. Это помогает Spark оптимизировать план выполнения этих запросов. Он также может обрабатывать Петабайт данных.

2.S игра в кости и кости

Фрейм данных AИП обычно поддерживают сложные методы для нарезка и нарезка кубиками данные. Это включаетоперациятакие как «выбор» строк, столбцов и ячеек по имени или по номеру, фильтрация строк и т. д. Статистические данные обычно очень беспорядочные и содержат множество пропущенных и неправильных значений и нарушений диапазона. Таким образом, критически важной особенностью фреймов данных является явное управление отсутствующими данными.

3. источники данных

DataFrame поддерживает широкий спектр форматов данных и источников, мы рассмотрим это позже в этом учебном блоге по Pyspark Dataframe. Они могут получать данные из различных источников.

4.Поддержка нескольких языков

Имеет поддержку API для разных языков, таких как Python, R, Scala, Java.,что упрощает использование людьми с разным опытом программирования.

Подпишитесь на наш канал на YouTube, чтобы получать новости ..!

Особенности фреймов данных

  • Фреймы данных Распространено in Nature, что делает его отказоустойчивой и высокодоступной структурой данных.
  • Ленивая оценка это стратегия оценки, которая удерживает оценку выражения до тех пор, пока не потребуется его значение. Это позволяет избежать повторной оценки. Ленивое вычисление в Spark означает, что выполнение не начнется, пока не будет запущено действие. В Spark картина ленивого вычисления возникает, когда происходят преобразования Spark.
  • Фреймы данных Неизменный в природе. Под неизменным я подразумеваю, что это объект, состояние которого не может быть изменен после его создания.Но мы можем преобразоватьегоценности, применяяопределенныйтрансформация, как в RDD.

Источники фреймов данных PySpark

Фреймы данных в Pyspark можно создавать несколькими способами:

Данные могут быть загружены через CSV, JSON, XML или паркетный файл. Его также можно создать с помощью существующего RDD и через любую другую базу данных, например Улей или Кассандра также. Он также может принимать данные из HDFS или локальной файловой системы.

Создание фрейма данных

Давайте продолжим с этим учебным блогом PySpark Dataframe Tutorial и разберемся, как создавать Dataframe.

Мы создадим экземпляры Employee и Department.

из pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'salary') employee1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Сотрудник ('Дэниел', 'meng', 'daniel@stanford.edu', 120000) employee3 = Сотрудник ('Мюриэль', Нет, 'muriel@waterloo.edu', 140000) employee4 = Сотрудник ('Рэйчел', 'Венделл ',' rach_3@edureka.co ', 160000) employee5 = Сотрудник (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Employee [0]) print (employee3) Department1 = Row (id = '123456', name = 'HR') Department2 = Строка (id = '789012', name = 'OPS') Department3 = Строка (id = '345678', name = 'FN') Department4 = Строка (id = ' 901234 ', name =' DEV ')

Затем мы создадим экземпляр DepartmentWithEmployees из Employee и Departments.

DepartmentWithEmployees1 = Строка (Отдел = Отдел1, Сотрудники = [Сотрудник1, Сотрудник2, Сотрудник5]) ДепартаментWithEmployees2 = Строка (Отдел = Отдел2, Сотрудники = [Сотрудник3, Сотрудник4]) ]) DepartmentWithEmployees4 = Строка (отдел = отдел4, сотрудники = [сотрудник2, сотрудник3])

Давайте создадим наш Dataframe из списка строк

DepartmentWithEmployees_Seq = [DepartmentWithEmployees1, DepartmentWithEmployees2] dframe = spark.createDataFrame (sizesWithEmployees_Seq) display (dframe) dframe.show ()

Пример 1 фреймов данных Pyspark: набор данных чемпионата мира по футболу FIFA

Здесь мы взяли набор данных игроков FIFA World Cup Players Dataset. Мы собираемся загрузить эти данные в формате CSV.вdataframe, а затем мы узнаем о различных преобразованиях и действиях, которые могут быть выполнены с этим dataframe.

Чтение данных из файла CSV

Загрузим данные из файла CSV. Здесь мы собираемся использовать spark.read.csv метод загрузки данных в фрейм данных fifa_df. Фактический метод spark.read.format [csv / json] .

fifa_df = spark.read.csv ('путь-файла / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Схема Dataframe

Чтобы взглянуть на схему, т.е. структуру фрейма данных, мы будем использовать printSchema метод. Это даст нам различные столбцы в нашем фрейме данных, а также тип данных и условия, допускающие значение NULL для этого конкретного столбца.

fifa_df.printSchema ()

Имена и количество столбцов (строки и столбец)

Когда мы хотим взглянуть на имена и подсчет количества строк и столбцов определенного фрейма данных, мы используем следующие методы.

fifa_df.columns // Имена столбцов fifa_df.count () // Количество строк len (fifa_df.columns) // Количество столбцов

37784 8

Описание конкретного столбца

Если мы хотим взглянуть на сводку любого конкретного столбца фрейма данных, мы используем описывает метод. Этот метод дает нам статистическую сводку данного столбца, если не указан, он предоставляет статистическую сводку фрейма данных.

keyerror: 'а'
fifa_df.describe ('Имя тренера'). show () fifa_df.describe ('Позиция'). show ()

Выбор нескольких столбцов

Если мы хотим выбрать определенные столбцы из фрейма данных, мы используем Выбрать метод.

fifa_df.select ('Имя игрока', 'Имя тренера'). show ()

Выбор нескольких разных столбцов

fifa_df.select ('Имя игрока', 'Имя тренера'). Different (). show ()

Фильтрация данных

Чтобы отфильтровать данные в соответствии с указанным условием, мы используем фильтр команда. Здесь мы фильтруем наш фрейм данных на основе условия, что Match ID должен быть равен 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: Набор данных Superheros

Загрузка данных

Здесь мы загрузим данные так же, как и раньше.

Superhero_df = spark.read.csv ('путь к файлу / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Фильтрация данных

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Количество героев-мужчин Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Количество героев-женщин

Группировка данных

Группа по используется для группировки фрейма данных на основе указанного столбца. Здесь мы группируем фрейм данных на основе столбца Race, а затем с помощью считать функция, мы можем найти количество конкретной расы.

Race_df = Superhero_df.groupby ('Гонка') .count () .show ()

Выполнение SQL-запросов

Мы также можем передавать SQL-запросы напрямую в любой фрейм данных, для этого нам нужно создать таблицу из фрейма данных, используя registerTempTable метод, а затем используйте sqlContext.sql () для передачи SQL-запросов.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('выберите * из superhero_table'). Show ()

sqlContext.sql ('выберите отдельный (Eye_color) из superhero_table'). show ()

sqlContext.sql ('выберите отдельный (цвет_глаза) из таблицы супергероев'). count ()

2. 3

sqlContext.sql ('выберите максимальный (вес) из таблицы супергероев'). show ()

На этом мы подошли к концу учебного пособия по PySpark Dataframe.

Вот и все, ребята!

Я надеюсь, что вы, ребята, получили представление о том, что такое PySpark Dataframe, почему он используется в отрасли, и о его функциях в этом учебном блоге PySpark Dataframe. Поздравляем, вы больше не новичок в Dataframes. Если вы хотите узнать больше о PySpark и разобраться в различных отраслевых сценариях использования, ознакомьтесь с нашими Spark с Python и PySpark Учебник Блог.