brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Sep 08. 2019

PySpark: SQL(with @Partition)

#SQL 기본기

PySpark SQL을 사용하면

데이터 가공을 조금 편하게 할 수 있다는 장점이 있다.


PySpark를 하다보면 다양한 Function을 사용하는데,


Ref: https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#module-pyspark.sql.functions


참고 사이트를 보면 확인 할 수 있다.


그 중에서 Windows, Partition에 관한 SQL 구문을 사용하는 경우가 많다.



>>> from pyspark.sql import Window

>>> window = Window.partitionBy("name").orderBy("age").rowsBetween(-1, 1)

>>> from pyspark.sql.functions import rank, min

>>> df.select(rank().over(window), min('age').over(window))


이걸 SQL로 바꾸면


"""select rank() over (partition by name order by age),

min(age) over (partition by name order by age)

from table1"""


비슷비슷.


더 자세한 사용법은,


Ref: https://databricks.com/blog/2015/07/15/introducing-window-functions-in-spark-sql.html


Way to Go!

작가의 이전글 Python: Lambda; 람다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari