Вступ до PySpark DataFrames

Основи Big Data з PySpark

Upendra Devisetty

Science Analyst, CyVerse

Що таке PySpark DataFrames?

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

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

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

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

  • DataFrames у PySpark підтримують як SQL-запити (SELECT * from table), так і методи виразів (df.select())

Основи Big Data з PySpark

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

  • SparkContext — головна точка входу для створення RDD

  • SparkSession надає єдину точку входу для роботи з Spark DataFrames

  • SparkSession використовують для створення DataFrame, реєстрації DataFrames, виконання SQL-запитів

  • У оболонці PySpark SparkSession доступний як spark

Основи Big Data з PySpark

Створення DataFrames у PySpark

  • Два способи створення DataFrames у PySpark

    • Із наявних RDD за допомогою методу SparkSession createDataFrame()

    • З різних джерел даних (CSV, JSON, TXT) через метод SparkSession read

  • Схема керує даними й допомагає 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...