빅데이터 처리/Spark
Spark SQL join, group by and functions
BUST
2019. 1. 8. 20:51
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