Spark SQL join, group by and functions
- join, group by example
Spark SQL Join
Dataset<Row> people = spark.read().parquet("...");
Dataset<Row> department = spark.read().parquet("...");
people.filter(people.col("age").gt(30))
.join(department, people.col("deptId").equalTo(department.col("id")))
.groupBy(department.col("name"), people.col("gender"))
.agg(avg(people.col("salary")), max(people.col("age")));
- group by 된 값을 function을 이용하여 데이터를 처리를 할수가 있다.
Functions
- collect_list
- list로 변환하는 function
- collect_set
- set로 변환하는 fucnction
- max
- max 값을 리턴하는 function
- lit
- 밸류를 column으로 생성한다 (ex, "VALUE" as value 와 동일)
- unix_timestamp
- Date를 시간(초)으로 변경한다.
- 시간차이를 구하는 방법 (second 단위)
- unix_timestamp(col("col1")).minus(unix_timestamp(col("col2"));
- 그외의 funcion은 아래에 존재한다.
- https://spark.apache.org/docs/2.4.0/api/java/org/apache/spark/sql/functions.html
'빅데이터 처리 > Spark' 카테고리의 다른 글
Spark SQL - Join 방식 (0) | 2019.01.09 |
---|---|
Spark 간단하게 하나의 파일로 Write하는 법 (1) | 2019.01.07 |
Spark AWS S3 접근시 400 에러 처리 방법 (0) | 2019.01.07 |
Spark SQL, DataFrames, Datasets (0) | 2019.01.05 |
Spark Word Count Example (0) | 2017.08.07 |