본문 바로가기

Data_Analysis/Spark, Zeppelin9

[Spark] Window 함수 [window 함수] - 특정 윈도우를 대상으로 고유의 집계 연산을 수행합니다. - 윈도우는 현재 데이터에 대한 참조를 사용해 정의하고,윈도우 명세는 함수에 전달될 로우를 결정합니다. - groupBy 함수를 사용하면 모든 로우 레코드가 단일 그룹으로만 이동하는 반면, 윈도우 함수는 프레임(로우 그룹 기반의 테이블)에 입력되는 모든 로우에 대해 결괏값을 계산합니다. 코드 예제를 통해 window 함수를 살펴보겠습니다. - 데이터 셋팅 // 데이터 셋팅 val retail=spark.read.format("csv") .option("header","true") .option("inferSchema","true") .load("C:/data/retail-data/by-day/2011-01-30.csv") r.. 2021. 3. 11.
[Spark] 그룹화 [그룹화] - 데이터 그룹 기반의 집계는 단일 컬럼의 데이터를 그룹화하고, 해당 그룹의 다른 여러 컬럼을 사용해서 계산하기 위해 카테고리형 데이터를 사용합니다. - 그룹화 작업은 아래와 같은 단계로 이뤄집니다. (1) 하나 이상의 컬럼을 그룹화 (Relational Grouped Dataset 반환) (2) 집계 연산을 수행 (DataFrame 반환) - 그룹화 코드 (1) 기본적인 그룹화 // 그룹화 retail_all.groupBy("InvoiceNo","CustomerId").count().show() (2) 표현식을 활용한 그룹화 retail_all.groupBy("InvoiceNo").agg( //agg 메서드로 여러 집계 처리를 한 번에 지정 count("Quantity").alias("qua.. 2021. 3. 9.
[Spark] 집계 연산 [집계 함수] 스파크는 모든 데이터 타입을 다루는 것 외에도 그룹화 데이터 타입 생성도 가능합니다. 그룹화된 결과는 지정된 집계 함수에 따라 Relational Grouped Dataset을 반환합니다. 1. count / countDistinct / approx_count_distinct 2. first / last / min / max 3. sum / sumDistinct 4. 평균 / 분산 / 표준편차 / 왜도 / 첨도 / 공분산 / 상관관계 5. 복합 데이터 타입 (collect_list, collect_set) 먼저 예시로 사용할 데이터 셋을 불러옵니다. // 데이터 셋팅 val retail_all=spark.read.format("csv") .option("header","true") .opt.. 2021. 3. 7.
[Spark] 구조적 API 기본 연산2 - 로우 [Row Handling] 1) 로우 생성 - 로우의 데이터에 접근할 때는 원하는 위치와 데이터 타입을 지정합니다. 자바나 스칼라를 사용할 때는 명시적으로 데이터 타입을 정의하지만, Python이나 R같은 동적 코드에서는 타입이 자동으로 변환됩니다. import org.apache.spark.sql.Row val myRow=Row("Hello",null,1,false) myRow 2) 로우 필터링 - filter 또는 where 메서드로 로우 필터링 - filter와 where는 똑같은 기능을 하며, - 메서드를 연달아 쓸 경우 메서드의 조건이 AND로 조건이 적용된다. - 다만, 스파크는 자동으로 필터의 순서와 상관없이 동시에 모든 필터링 작업을 수행 // 2) 로우 필터링 : filter 또는 whe.. 2020. 12. 26.
[Spark] 구조적 API 기본 연산1 - 컬럼 Spark 포스트는 책 「스파크 완벽 가이드 : 스파크를 활용한 빅데이터 처리와 분석의 모든 것」를 바탕으로 쓴 것임을 알려드립니다. 또한, Scala 코드 위주로 작성한 점 참고 바랍니다. 스파크 완벽 가이드 스파크 창시자가 알려주는 스파크 활용과 배포, 유지 보수의 모든 것. 오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서다. 스파크 사용법부터 배포, 유 www.aladin.co.kr 지난 포스팅에서 구조적 API의 예로 DataFrame을 언급했습니다. DataFrame은 컬럼과 로우로 구성된 로우와 컬럼을 가지는 분산 테이블 형태의 컬렉션입니다. 그러므로 DataFrame 핸들링도 로우와 컬럼에 대한 트랜스포메이션을 위주로 살펴보고자 합니다. [DataFram.. 2020. 12. 26.
[Spark] 구조적 API 개요 Spark 포스트는 책 「스파크 완벽 가이드 : 스파크를 활용한 빅데이터 처리와 분석의 모든 것」를 바탕으로 쓴 것임을 알려드립니다. 또한, Scala 코드 위주로 작성한 점 참고 바랍니다. 스파크 완벽 가이드 스파크 창시자가 알려주는 스파크 활용과 배포, 유지 보수의 모든 것. 오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서다. 스파크 사용법부터 배포, 유 www.aladin.co.kr 1. 구조적 API 종류 구조적 API에는 다음과 같은 분산 컬렉션 API가 있습니다. - Dataset - DataFrame - SQL 테이블과 뷰 2. DataFrame과 DataSet 1) DataFrame과 DataSet 모두 로우와 컬럼을 가지는 분산 테이블 형태의 컬렉션... 2020. 12. 23.
[Spark] 아파치 스파크 들어가기 Spark 포스트는 책 「스파크 완벽 가이드 : 스파크를 활용한 빅데이터 처리와 분석의 모든 것」를 바탕으로 쓴 것임을 알려드립니다. 또한, Scala 코드 위주로 작성한 점 참고 바랍니다. 스파크 완벽 가이드 스파크 창시자가 알려주는 스파크 활용과 배포, 유지 보수의 모든 것. 오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서다. 스파크 사용법부터 배포, 유 www.aladin.co.kr 1. 아파치 스파크 : 빅데이터를 위한 통합 컴퓨팅 엔진과 라이브러리 집합 아파치 스파크는 "빅데이터를 위한 통합 컴퓨팅 엔진과 라이브러리 집합"이라고 설명할 수 있습니다. 여기서 통합이란 데이터 분석 작업이 다양한 처리 유형과 라이브러리를 결합하여 수행한다는 것을 뜻합니다. 스파크.. 2020. 12. 23.