달나라 노트

Python pyspark : filter (spark dataframe filtering) 본문

Python/Python pyspark

Python pyspark : filter (spark dataframe filtering)

CosmosProject 2021. 5. 19. 05:36
728x90
반응형

 

 

 

spark dataframe에서도 특정 조건을 만족하는 행만을 추출할 수 있습니다.

 

from pyspark.sql import SparkSession
from pyspark.sql.functions import col
import pandas as pd

spark = SparkSession.builder.getOrCreate()

df_test = pd.DataFrame({
    'a': [1, 2, 3],
    'b': [10.0, 3.5, 7.315],
    'c': ['apple', 'banana', 'tomato']
})
df_spark = spark.createDataFrame(df_test)


df_spark_filtered = df_spark.filter( # 1
    df_spark.a == 2
)
df_spark_filtered.show()


df_spark_filtered = df_spark.filter( # 2
    col('a') == 2
)
df_spark_filtered.show()


df_spark_filtered = df_spark.filter( # 3
    col('a') == 1
    & col('c') == 'apple'
)
df_spark_filtered.show()


df_spark_filtered = df_spark.filter( # 4
    col('a') == 2
    | col('c') == 'tomato'
)
df_spark_filtered.show()


-- Result
+---+------+-------+
|  a|     b|      c|
+---+------+-------+
|  2|   3.5| banana|
+---+------+-------+


+---+------+-------+
|  a|     b|      c|
+---+------+-------+
|  2|   3.5| banana|
+---+------+-------+


+---+------+-------+
|  a|     b|      c|
+---+------+-------+
|  1|  10.0|  apple|
+---+------+-------+


+---+------+-------+
|  a|     b|      c|
+---+------+-------+
|  2|   3.5| banana|
|  3| 7.315| tomato|
+---+------+-------+

1. filter method 안에 column에 대한 조건을 명시하면 해당 조건을 만족하는 row만 뽑아낼 수 있습니다.

 

2. col 키워드도 사용 가능합니다.

 

3. 다중 조건 and는 & 기호를 이용할 수 있습니다.

 

4. 다중 조건 or은 | 기호를 이용할 수 있습니다.

 

 

 

 

 

 

 

728x90
반응형
Comments