본문 바로가기
빅데이터 부트캠프/Hadoop

빅데이터 부트캠프 59일차

by Mecodata 2022. 9. 29.

Spark 기본(DataFrame) 2

- cache(), persist() = 일종의 전역변수 개념처럼 한번 로드한 데이터를 그 순간에만 부르는게 아니라 메모리상에 머무르도록 명령 (persist로는 저장공간과 같은 세부사항을 지정할 수 있음, cache는 X)

- unpersist() = 적용되어있던 cache(), persist() 명령 해제

- array_contains() = 컬럼의 시퀀스 데이터에서 특정 문자열이 있는지 없는지 반환

 

- Map은 일종의 파이썬의 딕셔너리 같은 개념

- 데이터프레임에서는 키/값 지정을 Map("A"->"aa")와 같은 방법으로 지정함
- Map() = 키/값 데이터 생성

- map_keys() = 맵의 키만 반환
- map_values() = 맵의 값만 반환
- map_concat() = 두 맵을 하나로 합침

 

- import org.apache.spark.sql.functions.udf

- udf() = 새로 정의한 함수나 클래스를 등록시킴

(Spark는 파이썬과는 다르게 함수나 클래스를 새로 정의하면 따로 등록을 해줘야함)

- spark.udf.register() = 새로운 정의한 함수나 클래스를 등록할때 SQL문 사용가능하도록 등록

(import org.apache.spark.sql.functions.udf를 통해 불러온 udf와 spark.udf는 이름이 같지만 다른 패키지)

 

- explode() = 배열 형태로 구성된 컬럼의 데이터 요소를 하나씩 풀어서 반환

- array() = 두 개의 컬럼의 각각의 데이터를 하나의 배열 형태로 합쳐 하나의 컬럼으로 표현

 

- sample(비율) = 데이터 셋에서 무작위로 지정한 비율 만큼의 행을 추출하여 반환

(정확한 개수의 데이터를 반환하지 않고 근사값을 반환)

- sample에 비율 이외에 시드를 마지막 인자로 추가해서 입력할 수 있는데 이 시드에 샘플링한 내용이 저장됨

- sample에 비율 이외에 True/False를 첫 인자로 입력하면 중복값 허용/비허용을 적용할 수 있음

 

- current_date() = 현재 날짜(연,월,일) 출력

- current_timestamp() = 날짜뿐만 아니라 시간, 분, 초까지 추가로 반환

- datediff() = 두 날짜 간의 차이를 반환 

- monts_between() = 월(개월) 차이를 반환

- hour() = 시간 반환, minute() = 분 반환, second() = 초 반환

 

- Window = SQL로 처리하기에 어려운 행(Row)간 연산을 처리

 

- from_json() 함수를 통해 Json파일을 읽어온 후 MapType을 적용하면 spark에서 사용할 수 있도록 Map으로 변환

- to_json() = Map -> json 변환

- json_tuple() = json 데이터를 튜플화 (데이터프레임 생성시 편리)

- get_json_object() = Json 데이터에서 특정 키 와 값을 추출

 

PySpark 

- Python + Spark의 결합어로 Spark에서 Python API를 이용하여 Spark를 다룰 수 있음

- emptyRDD() = 빈 RDD 생성

- toPandas() = spark 데이터프레임을 파이썬 데이터프레임으로

- createDataFrame() = 파이썬 데이터프레임을 spark의 데이터프레임으로

※ pip install = python 2.x 버전에서 다운로드, pip3 install = 파이썬 3.x 버전에서 다운로드

 

- fill() = 결측치 값을 지정한 데이터로 대체

- csv파일을 write로 작성했다면 NameNode가 아닌 여러 DataNode 중 하나에 랜덤으로 저장됨 

 

댓글