Apache Spark의 DataFrame에서 row_number를 실행하는 방법

3803 단어 스파크아파치
SQL 윈도우 함수 row_number 편리하네요.
Apache Spark의 DataFrame 하지만 1.4.0 이후라면 row_number

DataFrame 샘플




버전
이름


1.0
Apple Pie

1.1
Banana Bread

1.5
Cupcake

1.6
Donut

2.0
Eclair

2.1
Froyo

2.3
진저브레드

3
Honeycomb

4.0
Ice Cream Sandwich

4.3
Jelly Bean

4.4
KitKat


row_number


org.apache.spark.sql.expressions.Window 를 import하여 rowNumber().over() 에 전달합니다.
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.functions._

val identified = df.select(
    rowNumber().over( Window.partitionBy().orderBy() ) as "id",
    $"version",
    $"name",
)

↑같이 partitionBy 에 인수를 건네주지 않으면 모든 데이터에 대해서 통번이 접해집니다.
identified.take(5)
res1: Array[org.apache.spark.sql.Row] = Array([1,"1.0","Apple Pie"], [2,"1.1","Banana Bread"], [3,"1.5","Cupcake"], [4,"1.6","Donut"], [5,"2.0","Eclair"])

좋은 웹페이지 즐겨찾기