반응형
select(*cols)
Dataframe column선택하여 해당 column을 출력
1 2 3 4 5 6 | >>> df.select('*').collect() [Row(age=2, name='Alice'), Row(age=5, name='Bob')] >>> df.select('name', 'age').collect() [Row(name='Alice', age=2), Row(name='Bob', age=5)] >>> df.select(df.name, (df.age + 10).alias('age')).collect() [Row(name='Alice', age=12), Row(name='Bob', age=15)] |
selectExpr(*expr)
select와 기능은 같지만 추가적인 산술, SQL식 언어를 위해서 사용하는 함수
1 2 | >>> df.selectExpr("age * 2", "abs(age)").collect() [Row((age * 2)=4, abs(age)=2), Row((age * 2)=10, abs(age)=5)] |
summary(*statistics)
describe랑 기능은 같다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | >>> df.summary().show() +-------+------------------+-----+ |summary| age| name| +-------+------------------+-----+ | count| 2| 2| | mean| 3.5| null| | stddev|2.1213203435596424| null| | min| 2|Alice| | 25%| 2| null| | 50%| 2| null| | 75%| 5| null| | max| 5| Bob| +-------+------------------+-----+ >>> df.summary("count", "min", "25%", "75%", "max").show() +-------+---+-----+ |summary|age| name| +-------+---+-----+ | count| 2| 2| | min| 2|Alice| | 25%| 2| null| | 75%| 5| null| | max| 5| Bob| +-------+---+-----+ # To do a summary for specific columns first select them: >>> df.select("age", "name").summary("count").show() +-------+---+----+ |summary|age|name| +-------+---+----+ | count| 2| 2| +-------+---+----+ |
withColumn(colName, col)
col에 어떤 연산에 따라서 colName 이름을 가진 새로운 column을 집어넣는다
1 2 | >>> df.withColumn('age2', df.age + 2).collect() [Row(age=2, name='Alice', age2=4), Row(age=5, name='Bob', age2=7)] |
between(lowerBound, upperBound)
반환형은 True or False로 두 사이 값에 있는지 확인하는 함수
1 2 3 4 5 6 7 | >>> df.select(df.name, df.age.between(2, 4)).show() +-----+---------------------------+ | name|((age >= 2) AND (age <= 4))| +-----+---------------------------+ |Alice| true| | Bob| false| +-----+---------------------------+ |
contains(other)
포함유무 반환
1 2 | >>> df.filter(df.name.contains('o')).collect() [Row(age=5, name='Bob')] |
when(condition, value)
앞 포스트에서 조건문으로 true or False밖에 반환이된다면, when함수는 특정 값을 지정하여 출력가능
1 2 3 4 5 6 7 8 | >>> from pyspark.sql import functions as F >>> df.select(df.name, F.when(df.age > 4, 1).when(df.age < 3, -1).otherwise(0)).show() +-----+------------------------------------------------------------+ | name|CASE WHEN (age > 4) THEN 1 WHEN (age < 3) THEN -1 ELSE 0 END| +-----+------------------------------------------------------------+ |Alice| -1| | Bob| 1| +-----+------------------------------------------------------------+ |
반응형
'Data > Data Analysis' 카테고리의 다른 글
[Pyspark] pyspark 로컬에 설치 (1) | 2019.10.19 |
---|---|
[Pyspark] dataframe join 문 (0) | 2019.09.16 |
[Pyspark] pyspark 함수 정리(2) (0) | 2019.01.11 |
[Pyspark] pyspark 함수 정리(1) (0) | 2019.01.11 |
[SQL] OVER함수 및 PARTITION BY 사용법 (0) | 2019.01.07 |