- [BW 4] f-문자열을 통한 인터폴레이션31514💡 형식화 : 미리 정의된 문자열에 데이터 값을 끼워 넣어서 사람이 보기 좋은 문자열로 저장하는 과정 % 형식화 연산자 사용과 문제점a = 12345b = 6789print('a의 값: %d, b의 값: %d' % (a, b))>>>a의 값: 12345, b의 값: 6789형식 지정자 : %s, %x, %f, %d 등을 말하며, 해당 위치에 지정한 문자를 형식화한다. 첫 번째 문제점오른쪽에 있는 tuple 내 데이터의 순서를 바꾸거나 값의 타입을 바꾸면 오류가 발생할 수 있다.key = "outer"value = 8.23miss_ordered_tuple = '%-10s = %.2f' % (value, key)print(miss_ordered_tuple)>>>TypeError: must be real n..
- 2024-10-22 15:58:11
- [BW 2] PEP 8 스타일 가이드를 따르라31514💡 PEP 8 : 파이썬 코드를 어떤 형식으로 작성할지 알려주는 스타일 가이드 PEP 8의 장점코드에 더 친숙하게 접근하고, 가독성이 좋아진다.다른 파이썬 프로그래머들과 쉽게 협력할 수 있다. 공백탭 대신 스페이스를 사용해 4칸 들여쓰기하라.라인 길이는 79개 문자 이하여야 한다.긴 식을 다음 줄에 이어서 쓸 경우에는 4칸 들여쓰기하라.파일 안에서 각 함수와 클래스 사이에는 빈 줄을 두 줄 넣어라.클래스 안에서 메서드와 메서드 사이에는 빈 줄을 한 줄 넣어라.딕셔너리에서 키와 콜론(:) 사이에는 공백을 넣지 않고, 콜론 다음에 빈 칸을 넣고 값을 넣어라.변수 대입에서 = 전후에 빈 칸을 넣어라.타입 표기를 덧붙이는 경우에는 변수 이름과 콜론 사이에 공백을 넣지 않도록 주의하고, 콜론과 타입 정보 사이에..
- 2024-10-22 15:55:35
- [스파크 완벽 가이드] 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
- [스파크 완벽 가이드] 15장 - 스파크 애플리케이션의 생애주기31514스파크에서 코드를 실행할 때 어떤 일이 발생하는지 알아보자. 생애주기 - 외부스파크 드라이버는 애플리케이션 실행을 제어하고, 클러스터(익스큐터의 상태와 태스크)의 모든 상태 정보를 유지한다.물리적 자원 확보와 익스큐터 실행을 위해 클러스터 매니저와 통신할 수 있어야 한다. 스파크 익스큐터는 드라이버가 할당한 태스크를 수행하는 프로세스이다.태스크의 상태와 결과를 드라이버에게 보고한다. 클러스터 매니저는 애플리케이션을 실행할 클러스터 머신을 유지한다.마스터와 워커라는 개념을 가지고 있으며 클러스터 매니저와 물리적인 노드 또는 가상의 노드들이 존재한다. 수 많은 노드 중에서 스파크 드라이버 역할을 할 노드를 선택하고 애플리케이션 정보를 드라이버에게 전달한다.스파크 드라이버는 애플리케이션 정보를 읽고, 필요한 ..
- 2024-10-21 17:09:46
- [공룡책] 3장 - 프로세스31514이 글은 공룡책 3장에 있는 프로세스 간의 통신에 대해 다룬다. 프로세스 간의 통신(IPC)에는 기본적으로 공유 메모리와 메시지 전달의 두 가지 모델이 있다. 공유 메모리공유 메모리를 사용하여 통신하려는 프로세스들은 당연하게도 공유 메모리를 구축해야 한다.하지만 운영체제는 하나의 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지하고 있기 때문에 두 프로세스는 제약 조건 제거에 동의하는 것을 필요로 한다. 대신 운영체제는 프로세스 간의 통신 과정에서 데이터의 형식과 위치는 프로세스가 결정하도록 한다.약간.. 말 안듣는 자식한테 니 알아서 하라고 하는 느낌이다.따라서 두 프로세스는 동시에 동일한 위치에 쓰는 문제를 해결해야 한다. 이를 조금 더 자세히 살펴보기 위해서 생산자-소비자 문제를 예로 들어보자..
- 2024-10-17 14:02:09
- [스파크 완벽 가이드] 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
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)