Giới thiệu về PySpark DataFrames

Nền tảng Big Data với PySpark

Upendra Devisetty

Science Analyst, CyVerse

PySpark DataFrames là gì?

  • PySpark SQL là thư viện Spark cho dữ liệu có cấu trúc. Nó cung cấp thêm thông tin về cấu trúc dữ liệu và phép tính

  • PySpark DataFrame là tập dữ liệu phân tán bất biến với các cột có tên

  • Thiết kế để xử lý dữ liệu có cấu trúc (ví dụ: CSDL quan hệ) và bán cấu trúc (ví dụ: JSON)

  • DataFrame API có trong Python, R, Scala và Java

  • DataFrame trong PySpark hỗ trợ truy vấn SQL (SELECT * from table) và phương thức biểu thức (df.select())

Nền tảng Big Data với PySpark

SparkSession - Điểm vào của DataFrame API

  • SparkContext là điểm vào chính để tạo RDD

  • SparkSession cung cấp một điểm vào duy nhất để làm việc với Spark DataFrame

  • SparkSession dùng để tạo, đăng ký DataFrame và thực thi truy vấn SQL

  • Trong shell PySpark, SparkSession có sẵn dưới tên spark

Nền tảng Big Data với PySpark

Tạo DataFrame trong PySpark

  • Hai cách tạo DataFrame trong PySpark

    • Từ RDD hiện có bằng phương thức createDataFrame() của SparkSession

    • Từ nhiều nguồn dữ liệu (CSV, JSON, TXT) bằng phương thức read của SparkSession

  • Schema kiểm soát dữ liệu và giúp DataFrame tối ưu truy vấn

  • Schema cung cấp thông tin về tên cột, kiểu dữ liệu, giá trị trống, v.v.

Nền tảng Big Data với PySpark

Tạo DataFrame từ 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
Nền tảng Big Data với PySpark

Tạo DataFrame bằng cách đọc 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")
  • Đường dẫn tệp và hai tham số tùy chọn

  • Hai tham số tùy chọn

    • header=True, inferSchema=True
Nền tảng Big Data với PySpark

Hãy luyện tập

Nền tảng Big Data với PySpark

Preparing Video For Download...