분류 전체보기

Dataset - Java, Scala 언어에서 지원하며 정적 데이터 타입에 맞는 코드를 지원하기 위한 Spark 의 구조적 API이다. - Dataset API는 타입 안정성을 지원하므로 초기화에 사용한 class 대신 다른 class로 접근할 수 없다. ex. Dataset[Person] 구조적 스트리밍 - 스트림 처리용 고수준 API - 구조적 스트리밍을 사용하면 구조적 API 로 개발된 배치 모드의 연산을 스트리밍 방식으로 실행할 수 있음. - 데이터를 읽을 때 read 대신 readStream method 를 사용 - maxFiledsPerTrigger 옵션을 추가로 지정 우선 staticDataFrame 을 기존의 csv 파일들을 읽어서 생성한다. 구조적 스트리밍으로 실행하는 예시는 다음과 같..
·개발일기
주제 : 나의 삶 저는 항상 새로운 도전을 했고 도전을 위해 노력을 많이 했고, 가끔은 실패도 했던 삶을 살아왔던 것 같습니다. 어쩌면 도전하고 성취하는 과정에서 이루는 성취감과 성장이 제가 사는데 '도파민' 이 되었던 것 같습니다. 대학교에 입학을 하고 친구의 권유로 iOS 앱 개발 특강을 들었습니다. 처음엔 이게 개발 관련된 수업인지도 몰랐습니다. 지금 생각해보면 2달간의 질좋은 iOS 앱 개발 부트캠프 정도였던 것 같습니다. 처음으로 macOS를 접했고, imac을 사용했습니다. 새로운 것에 환장하는 저로써는 세상에 이런 분야도 있구나 신기하다 ! 라는 생각이 들었습니다. 원래는 마케팅과 광고홍보 쪽으로 나아가고 싶었으나 잘 풀리지 않았고 너무 외향적인 것(?)을 요구하는 분야라고 느껴 스트레스도 ..
스파크 기본 아키텍처 스파크는 클러스터의 데이터 처리 작업을 관리하고 조율한다. 스파크가 연산에 사용할 클러스터는 Spark Standalone Cluster Manager, Hadoop YARN, Mesos 와 같은 클러스터 매니저가 관리한다. 유저가 스파크 어플리케이션을 스파크 클러스터 매니저에 submit 하면 클러스터 매니저는 자원을 할당한다. 스파크 어플리케이션 스파크 어플리케이션은 드라이버 프로세스(Driver Process)와 다수의 익스큐터 프로세스 (Executor Process) 로 구성된다. 드라이버 프로세스는 main() 함수를 실행한다. 익스큐터 프로세스는 드라이버 프로세스가 할당한 작업을 수행한다. 그리고 진행 상황을 다시 드라이버 노드에 보고한다. 스파크 API 스파크 API ..
아파치 스파크 (Apache Spark) 란 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 '라이브러리'들의 집합이다. 1. 컴퓨팅 엔진 여기서 스파크가 '컴퓨팅 엔진' 이라는 의미는 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행하며 스파크가 직접 빅데이터들을 영구적으로 저장하는 저장소의 역할은 하지 않는다는 의미로 이해할 수 있다. 이러한 점은 Apache Hadoop 과 같은 기존의 빅데이터 플랫폼과의 차별점이 된다. Hadoop의 경우 하둡 파일 시스템과 컴퓨팅 시스템인 맵리듀스라는 두 가지 시스템이 매우 밀접하게 얽혀있어서 둘 중 하나만 단독으로 사용하기 어렵다. 반면, Spark의 경우에는 연산 작업을 수행하는 노드와 저장소를 별도로 구성할 수 있다는 장점이 있다. 2..
Spark 스터디를 시작하면서 실습환경이 필요했는데 현재 회사에서 데이터브릭스를 사용하니까, Spark 개인 공부도 동일한 환경에서 공부를 하면 좋을 것 같아서 데이터브릭스로 결정했다. 그런데 클라우드 서비스인 만큼 과금을 주의해야 하므로 무료 버전 Databricks Community Edition 을 찾아보게 되었다. 시작 방법은 간단한데 데이터브릭스가 상당히 교묘하게 숨겨놔서 주의해야 한다 ! 나와 같은 사람들이 있을 것 같아서 공유한다. https://www.databricks.com/try-databricks Try Databricks - Unified Data Analytics Platform for Data Engineering Discover why businesses are turning..
·Algorithm (PS)
https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 단순하게 벽을 부수는 횟수를 카운트 하다가 오답이 계속 나왔는데 이를 해결하기 위해서 새로 탐색하는 칸이 벽인 경우와 통로인 경우의 가중치를 다르게 주어야 한다. 1) 통로 : 벽을 부수지 않아도 통과하여 이동할 수 있으므로 가중치가 높다. 덱 (deque) 의 앞쪽으로 밀어넣는다 2) 벽 : 벽을 부수어야 하므로 가중치가 낮다. 덱 (deque) 의 뒤쪽으로 밀어넣는다 # ..
·Algorithm (PS)
이진수로 변환하고 -> 이진수를 표현하는 포화 이진 트리를 만들고 -> 포화 이진 트리를 탐색 하는 총 3가지의 로직을 구현해주면 되는 문제이다. 트리 란 비선형 자료구조들 중에서 자료 간 (= 노드) 계층 관계를 가진 자료구조이다. 포화 이진 트리란 모든 리프 노드의 레벨이 동일하고, 모든 레벨이 노드로 차있는 트리이다. 또한 각 노드들이 2개의 자식 노드들을 가지며, 홀수 개의 자식 노드를 가질 수 없다. 즉, 자식 노드가 0개이거나 2개이다. # 포화 이진 트리를 탐색 def check_tree(binary): root = len(binary) // 2 # mid if root == 0: # leaf node return True if binary[root] == '0': if '1' not in ..
·Data Engineering
Apache Airflow 환경 구성 MacOS 환경 Python 3.8.10 버전 단일 local server 위의 환경에서 Apache Airflow 를 설치한다. 우선, airflow 를 설치할 가상 환경을 생성한다. python3 -m venv ./airflow 가상환경을 activate 시켜줍니다. source airflow/bin/activate 다음으로 AIRFLOW_HOME 이라는 환경변수에 airflow 의 경로를 저장합니다. export AIRFLOW_HOME=~/airflow echo 명령어로 환경변수가 잘 설정되었는지 확인합니다. airflow version 에 대한 환경 변수를 설정한다. airflow 2.7 version 은 Python 3.8, 3.9, 3.10, 3.11 을 ..
minjiwoo
'분류 전체보기' 카테고리의 글 목록 (8 Page)