PySpark DataFrame 入門

PySparkで学ぶBig Data入門

Upendra Devisetty

Science Analyst, CyVerse

PySpark DataFrame とは?

  • PySpark SQL は構造化データ用の Spark ライブラリ。データ構造と計算に関する情報をより多く提供します

  • PySpark DataFrame は、列名を持つ不変の分散データ集合です

  • 構造化データ(例: リレーショナル DB)と半構造化データ(例: JSON)を処理可能

  • DataFrame API は Python、R、Scala、Java で利用可能

  • PySpark の DataFrame は SQL クエリ(SELECT * from table)と式メソッド(df.select())の両方をサポート

PySparkで学ぶBig Data入門

SparkSession — DataFrame API のエントリポイント

  • SparkContext は RDD を作成するための主なエントリポイント

  • SparkSession は Spark の DataFrame とやり取りする単一のエントリポイントを提供

  • SparkSession は DataFrame の作成、登録、SQL 実行に使用します

  • PySpark シェルでは spark として利用可能

PySparkで学ぶBig Data入門

PySpark での DataFrame 作成

  • PySpark で DataFrame を作成する方法は 2 通り

    • 既存の RDD から SparkSession の createDataFrame() で作成

    • SparkSession の read で各種データソース(CSV、JSON、TXT)から読み込み

  • スキーマはデータを制御し、クエリ最適化に役立ちます

  • スキーマは列名、データ型、欠損値などの情報を提供します

PySparkで学ぶBig Data入門

RDD から DataFrame を作成

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
PySparkで学ぶBig Data入門

CSV/JSON/TXT を読み込んで DataFrame を作成

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")
  • ファイルパスと 2 つの任意パラメータ

  • 2 つの任意パラメータ

    • header=True, inferSchema=True
PySparkで学ぶBig Data入門

練習してみましょう

PySparkで学ぶBig Data入門

Preparing Video For Download...