Введение в DataFrames PySpark

Основы Big Data с PySpark

Upendra Devisetty

Science Analyst, CyVerse

Что такое DataFrames в PySpark?

  • PySpark SQL — библиотека Spark для структурированных данных. Она предоставляет больше информации о структуре данных и вычислениях

  • DataFrame в PySpark — неизменяемая распределённая коллекция данных с именованными столбцами

  • Предназначен для обработки структурированных (например, реляционные БД) и полуструктурированных данных (например, JSON)

  • DataFrame API доступен в Python, R, Scala и Java

  • DataFrames в PySpark поддерживают SQL-запросы (SELECT * from table) и методы-выражения (df.select())

Основы Big Data с PySpark

SparkSession — точка входа для DataFrame API

  • SparkContext — основная точка входа для создания RDD

  • SparkSession обеспечивает единую точку входа для работы с DataFrames Spark

  • SparkSession используется для создания DataFrames, их регистрации и выполнения SQL-запросов

  • SparkSession доступен в оболочке PySpark как spark

Основы Big Data с PySpark

Создание DataFrames в PySpark

  • Два способа создания DataFrames в PySpark

    • Из существующих RDD с помощью метода createDataFrame() SparkSession

    • Из различных источников данных (CSV, JSON, TXT) с помощью метода read SparkSession

  • Схема управляет данными и помогает DataFrames оптимизировать запросы

  • Схема содержит информацию об именах столбцов, типах данных, пустых значениях и т. д.

Основы Big Data с PySpark

Создание DataFrame из RDD

iphones_RDD = sc.parallelize([
    ("XS", 2018, 5.65, 2.79, 6.24),
    ("XR", 2018, 5.94, 2.98, 6.84),
    ("X10", 2017, 5.65, 2.79, 6.13),
    ("8Plus", 2017, 6.23, 3.07, 7.12)
])
names = ['Model', 'Year', 'Height', 'Width', 'Weight']
iphones_df = spark.createDataFrame(iphones_RDD, schema=names)

type(iphones_df)
pyspark.sql.dataframe.DataFrame
Основы Big Data с PySpark

Создание DataFrame из CSV/JSON/TXT

df_csv = spark.read.csv("people.csv", header=True, inferSchema=True)
df_json = spark.read.json("people.json")
df_txt = spark.read.txt("people.txt")
  • Путь к файлу и два необязательных параметра

  • Два необязательных параметра

    • header=True, inferSchema=True
Основы Big Data с PySpark

Давайте потренируемся!

Основы Big Data с PySpark

Preparing Video For Download...