- [스파크 완벽 가이드] 8장 - 조인31514먼저 스파크에서 조인을 사용하는 방법은 다음과 같다.joinType = "inner | outer | left_outer | right_outer | left_semi | left_anti | cross"joinExpression = person["graduate_program"] == graduateProgram['id']person.join(graduateProgram, joinExpression).show()joinType을 하나 지정하고, join할 때 비교할 하나 이상의 키값을 joinExpression에 지정한다.그리고 조인을 수행하면 된다. 조인 사용 시 문제점복합 데이터 타입의 조인불리언을 반환하는 모든 표현식은 조인 표현식으로 간주할 수 있다.예를 들어 spark_status라는 리스트 ..
- 2024-10-24 13:52:02
- [스파크 완벽 가이드] 10장 - 스파크 SQL31514스파크 SQL 쿼리 실행 방법스파크 SQL CLI스파크의 프로그래밍 SQL 인터페이스스파크 SQL Thrift JDBC/ODBC 서버 카탈로그스파크 SQL에서 가장 높은 추상화 단계는 카탈로그이다.카탈로그는 테이블에 저장된 데이터에 대한 메타데이터뿐만 아니라 데이터베이스, 테이블, 함수 그리고 뷰에 대한 정보를 추상화한다. 테이블테이블은 명령을 실행할 데이터의 구조라는 점에서 DataFrame과 논리적으로 동일하다.스파크에서 테이블을 생성하면 default 데이터베이스에 등록된다. 테이블은 항상 데이터를 가지고 있다.임시 테이블의 개념이 없으며 데이터를 가지지 않는 뷰만 존재한다.따라서 테이블을 제거하면 모든 데이터가 사라지므로 주의해야 한다. 관리형 테이블은 스파크가 데이터 파일을 완전히 관리하는 테이..
- 2024-10-23 12:36:57
- [스파크 완벽 가이드] 14장 - 분산형 공유 변수31514브로드캐스트 변수브로드캐스트 변수는 읽기 전용 데이터를 클러스터의 모든 워커 노드에 효율적으로 공유하는 방법을 제공한다.브로드캐스트 변수를 사용하지 않고, 클로저 함수에 담아 태스크에 데이터를 전달하는 방식은 매번 직렬화가 발생하여 큰 부하를 유발할 수 있다.하지만 브로드캐스트 변수는 클러스터의 각 워커 노드에 한 번만 전송되며, 각 워커 노드에서 해당 변수를 공유 메모리로 저장하고, 해당 워커 내의 모든 태스크가 그 변수를 참조할 수 있게 됩니다. 사용 예시my_collection = "Spark The Definitive Guide : Big Data Processing Made Simple".split(" ")words = spark.sparkContext.parallelize(my_collecti..
- 2024-10-22 12:56:17
- [스파크 완벽 가이드] 18장 - 모니터링31514어떤 컴포넌트를 모니터링해야 할까?스파크 애플리케이션 잡 - 클러스터에서 사용자 애플리케이션이 실행되는 상황을 파악하거나 디버깅하려면 가장 먼저 스파크 UI와 스파크 로그를 확인해야 한다.JVM - 스파크는 모든 익스큐터를 개별 JVM에서 실행하기 때문에 코드가 실행되는 과정을 이해하기 위해 각 JVM을 모니터링해야 한다.OS와 머신 - JVM은 호스트의 OS에서 실행되기 때문에 머신의 상태를 모니터링해야 한다.클러스터 - YARN, MESOS, 스탠드얼론 클러스터 매니저가 대상이 된다.
- 2024-10-17 12:15:41
- [스파크 완벽 가이드] 17장 - 스파크 배포 환경31514클러스터 환경온프레미스 클러스터사용 중인 하드웨어를 완전히 제어할 수 있어서 특정 워크로드의 성능을 최적화할 수 있다. 클러스터의 크기가 제한적이다.클러스터는 하둡 파일 시스템이나 분산 키-값 저장소 같은 자체 저장소 시스템을 선택하고 운영해야 한다. 온프레미스 클러스터를 사용한다면 자원 활용 문제를 해결할 수 있는 클러스터 매니저를 사용하는 것이 좋다. 클라우드 배포자원을 탄력적으로 늘이고 줄이는 것이 가능하다.클라우드 환경은 비용이 저렴하고 복제 기능을 지원하는 저장소를 제공하기 때문에 대규모 데이터를 쉽게 관리할 수 있다. 클러스터 매니저스탠드얼론 모드아파치 스파크 워크로드용으로 특별히 제작된 경량화 플랫폼이다. 하둡 YARN하둡 YARN은 잡 스케줄링과 클러스터 자원 관리용 프레임워크다.spark..
- 2024-10-16 12:50:12
- [스파크 완벽 가이드] 9장 - 데이터소스31514데이터소스 API의 구조읽기 API 구조DataFrameReader.format(...).option("key", "value").schema(...).load() 쓰기 API 구조DataFrameWriter.format(...).option(...).partitionBy(...).bucketBy(...).sortBy(...).save() CSV 파일csvFile = spark.read.format("csv")\ .option("header", "true")\ .option("mode", "FAILFAST")\ # 읽기 모드 - 형식에 맞지 않는 레코드를 만나면 즉시 종료 .option("inferschema", "true")\ .load("경로") JSON 파일스파크에서는 JSON 파일을 사용할..
- 2024-10-15 15:41:58
- [스파크 완벽 가이드] Spark 성능 튜닝 가이드31514이 글에서는 잡의 실행 속도를 높이기 위한 몇 가지 방법을 알아보겠습니다.스파크의 잡을 최적화할 수 있는 방법은 크게 다음과 같이 두 가지가 존재합니다.속성 값을 설정하거나 런타임 환경을 변경하는 간접적인 방법개별 스파크 잡, 스테이지, 태스크를 튜닝하거나 코드 설계를 변경하는 직접적인 방법그리고 이를 확인하기 위해 좋은 모니터링 도구와 잡 이력 추적 환경을 구성하는 것이 중요합니다. 간접적인 성능 향상 기법1. 좋은 설계 방안구조적 API로 만들 수 없는 사용자 정의 트랜스포메이션(RDD 트랜스포메이션/UDF)을 사용해야 한다면, 해당 부분만 파이썬과 R을 피하자.직접 RDD를 작성하면 Spark SQL 엔진의 최적화 혜택을 받을 수 없다.UDF 사용은 최대한 자제하는 것이 좋다.UDF는 데이터를 JV..
- 2024-10-14 15:16:37
- [스파크 완벽 가이드] 스파크 간단히 살펴보기31514스파크의 기본 아키텍처클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터처럼 사용할 수 있게 만든다.클러스터는 클러스터 매니저에서 관리하는데, 그 예로 Standalone, YARN, Mesos, Kubernetes 등이 있다. 사용자가 클러스터 매니저에게 스파크 애플리케이션 제출클러스터 매니저는 필요한 자원 할당할당 받은 자원으로 작업 처리 스파크 애플리케이션스파크 애플리케이션은 위와 같이 드라이버와 다수의 익스큐터로 구성된다.드라이버 - 클러스터 노드 중 하나에서 실행되며 main() 함수 실행익스큐터 - 드라이버가 할당한 작업 수행 및 보고 DataFrameDataFrame은 테이블의 데이터를 로우와 컬럼으로 단순하게 표현했고, Spark 뿐 아니라 Python이나 R에도 존재한다.하지만 Spark..
- 2024-10-14 12:29:40
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)