빅데이터 처리/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