LoginSignup
1
0

More than 1 year has passed since last update.

Spark(Databricks)のPySparkにてデータフレーム操作する時にカラムを指定してデータ取得する方法

Last updated at Posted at 2021-07-18

概要

Spark(Databricks)のPySparkにてデータフレーム操作する時にカラムを指定してデータ取得する方法を紹介します。

確認済みの4パターンにおけるコードを提示します。

  • カラム名を直接リストで指定する方法
  • カラム名をcol関数で指定する方法
  • カラム名をデータフレームのオブジェクト名(書式:DataFrameName['column_name'])で指定する方法
  • カラム名をデータフレームのオブジェクト名(書式:DataFrameName.column_name)で指定する方法

詳細は下記のGithub pagesのページをご確認ください。

コードを実行したい方は、下記のdbcファイルを取り込んでください。

https://github.com/manabian-/databricks_tecks_for_qiita/blob/main/tecks/how_to_select_columns_by_pyspark/dbc/how_to_select_columns_by_pyspark.dbc

検証環境

databricks runtime: 8.1.x-scala2.12
Python version: 3.8.8
pyspark version: 3.1.1.dev0

カラムを指定してデータを取得する方法

カラム名を直接リストで指定する方法

# 単一のカラムを指定する方法
df.select('c_custkey').limit(10).display()

image.png

# 複数のカラムを指定する方法
columns = ['c_custkey','c_name']

print(columns)
df.select(columns).limit(10).display()

image.png

カラム名をcol関数で指定する方法

# 単一のカラムを指定する方法
from pyspark.sql.functions import col

df.select(col('c_address')).limit(10).display()

image.png

# 複数のカラムを指定する方法
from pyspark.sql.functions import col

columns = ['c_address', 'c_nationkey']

col_columns = []
for column in columns:
    col_columns.append(col(column))

print(col_columns)    
df.select(col_columns).limit(10).display()

image.png

カラム名をデータフレームのオブジェクト名(書式:DataFrameName['column_name'])で指定する方法

# 単一のカラムを指定する方法

df.select(df['c_phone']).limit(10).display()

image.png

# 複数のカラムを指定する方法
columns = ['c_phone', 'c_acctbal']

col_columns = []
for column in columns:
    col_columns.append(df[column])

print(col_columns)
df.select(col_columns).limit(10).display()

image.png

カラム名をデータフレームのオブジェクト名(書式:DataFrameName.column_name)で指定する方法

# 単一のカラムを指定する方法

df.select(df.c_mktsegment).limit(10).display()

image.png

# 複数のカラムを指定する方法
columns = [df.c_mktsegment, df.c_comment]

print(columns)
df.select(columns).limit(10).display()

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0