PySparkのDataFrameをSQLで操作する

+---+----+
| id|name|
+---+----+
|  1|   a|
|  2|   b|
|  3|   c|
+---+----+

この様な元のデータに対してSQLでidが2のデータだけを抽出してみます。

df = spark.createDataFrame([
        (1, "a"),
        (2, "b"),
        (3, "c")
    ],
    ["id", "name"])

df.createOrReplaceTempView("users")
user_df = spark.sql("SELECT * FROM users WHERE id = 2")
user_df.show()

SQLで扱える様にするためcreateOrReplaceTempViewメソッドでDataFrameに名前を付けたViewを作成します。

+---+----+
| id|name|
+---+----+
|  2|   b|
+---+----+

参照