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
반응형