반응형

분류 전체보기 339

[Spark] SparkSession 생성과 환경변수 세팅

Spark Session 생성 Spark 프로그램의 시작은 SparkSession을 만드는 것 프로그램마다 하나를 만들어 Spark Cluster와 통신: Singleton 객체 Spark 2.0에서 처음 소개됨 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 (단계별로 하나씩 설정도 가능)단 RDD와 관련된 작업을 할때는 SparkSession 밑의 sparkContext 객체를 사용Spark Session API Document : https://spark.apache.org/docs/3.1.1/api/python/reference/api/py..

[Spark] Spark 데이터 구조 (RDD, DataFrame, Dataset)

Spark 데이터 구조  RDD, DataFrame, Dataset (Immutable Distributed Data)RDD가 가장 밑바닥에 있고, 그 위해 DataFrame과  Dataset가 있음RDD는 할 수 있는 것은 많지만, 프로그래밍 생산성이 떨어짐.python을 쓴다면 Dataframe, java/scaler로 한다면 Dataset을 씀2016년에 DataFrame과 Dataset은 하나의 API로 통합됨모두 파티션으로 나뉘어 Spark에서 처리됨DataFrame Code나 Sparksql을 효율적인 자바 바이트 코드(Java bytecode) 로 만들어주는 과정Cody Analysis : 코드 분석하여 어떤 테이블과, 컬럼을 쓰는지 결정하고, 사용자가 없는 테이블과 컬럼을 쓰면 에러를 냄L..

[Spark] Spark 데이터 처리 방식 (Partitioning, Shuffling, Spill) (InputPartition, OutputPartition, ShufflePartition)(Range partition, Hashing partition, Data Skewness)

Spark 데이터 시스템 아키텍처큰데이터를 ETL하거나 일시적으로 데이터를 select할때는 hive나 presto도 상관 없음하지만 spark가 각광받는 이유는 하나의 시스템으로 다양한 것들을 할 수 있기 때문외부데이터의 예 : RDS, Nocurl 등외부데이터를 주기적으로 ETL을 통해 HDFS로 가져와주어야 함.이를 위해1. 주기적으로 ETL작업 진행 (보통 Airflow를 활용)2. 필요할 때 바로 spark에서 로딩내부든 외부든 spark에 올라가는 순간 똑같은 데이터가 됨 데이터 병렬처리와 파티션(Partition)데이터가 먼저 분산되어야함하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록 (128MB)hdfs-site.xml에 있는 dfs.block.size 프로퍼티가 결정Spark에서..

[Python/GoogleSpreadSheet API] GoogleSpreadSheet 필터 삽입, 필터 삭제

이번 포스팅에서는 구글 스프레드 시트에 필터를 세팅하거나 필터를 삭제하는 방법을 알아보겠습니다. Api 세팅 def api_setting(): scope = ['https://www.googleapis.com/auth/spreadsheets' ,'https://www.googleapis.com/auth/drive'] json_file_name = 'asset_management_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope) gc = gspread.authorize(credentials) creds = None creds = service_account.Credentials.from..

[Python/GoogleSpreadSheet API] GoogleSpreadSheet 데이터 삽입, 삭제

이번 포스팅에서는 googlespreadsheet api를 활용한 데이터 insert, 데이터 제거에 대해 알아봅니다. Api 세팅 def api_setting(): scope = ['https://www.googleapis.com/auth/spreadsheets' ,'https://www.googleapis.com/auth/drive'] json_file_name = 'asset_management_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope) gc = gspread.authorize(credentials) creds = None creds = service_account.Cre..

[Python/GoogleSpreadSheet API] GoogleSpreadSheet 시트이름 및 시트탭 변경

Api 세팅 def api_setting(): scope = ['https://www.googleapis.com/auth/spreadsheets' ,'https://www.googleapis.com/auth/drive'] json_file_name = 'asset_management_key.json' credentials = ServiceAccountCredentials.from_json_keyfile_name(json_file_name, scope) gc = gspread.authorize(credentials) creds = None creds = service_account.Credentials.from_service_account_file( json_file_name, scopes=scope ) ..

[Python/GoogleSpreadSheet API] GoogleSpreadSheet API 연동하기 (2)

구글 스프레드 시트 API 연동하기 (2) 이번 포스팅은 아래 포스팅에 이어 진행됩니다. https://ysyblog.tistory.com/353 [Python/GoogleSpreadSheet API] GoogleSpreadSheet API 연동하기 (1) 구글 스프레드 시트 API 연동하기 오랜만에 개인프로젝트를 하고 있는데, 이 프로젝트에 구글 스프레드시트 API를 활용하게 되었다. 예전에 구글스프레드시트 API를 잘 썼지만.. 오랜만에 쓰려고 ysyblog.tistory.com 이번 포스팅에서는 지난 포스팅에서 받은 Credential 파일을 활용하여 API를 연동해보겠습니다. 구글 스프레드 시트 API 관련 패키지를 import import gspread from oauth2client.servi..

[Python/GoogleSpreadSheet API] GoogleSpreadSheet API 연동하기 (1)

구글 스프레드 시트 API 연동하기 오랜만에 개인프로젝트를 하고 있는데, 이 프로젝트에 구글 스프레드시트 API를 활용하게 되었다. 예전에 구글스프레드시트 API를 잘 썼지만.. 오랜만에 쓰려고 하니 기억이 잘 나지 않았다. 따라서 이번 기회에 구글스프레드시트 API 사용법을 다시 정리해보게 되었다. 1. 아래링크로 들어갑니다. https://console.developers.google.com/projectselector2/apis/enableflow?apiid=drive&authuser=1&supportedpurview=project 2. 새 프로젝트를 만듭니다 프로젝트 만들기를 클릭합니다. 프로젝트 이름을 입력하고 만들기를 누릅니다. 3. 프로젝트에 구글스프레드시트를 추가 먼저" API 및 서비스"..

[수학리부트] 논리 (명제, 진리집합, 논리연산자, 논리연산식, 집합연산식, 곱집합, 동치관계)

명제 조건명제 : 말 그대로 어떤 조건이 충족되는지 여부 p(가정) -> q(결론) 로 표현 (p이면 q이다) 명제의 역 : 원래의 명제에서 가정과 결론을 바꾼 것 (q -> p) 명제의 이 : 명제의 부정 (~p -> ~q) 명제의 대우 : 명제에서 가정과 결론도 바꾸고 부정한 것 (~q -> ~p) 명제함수 : x에 대해 참,거짓이 대응되는 일종의 함수. 미지의 값을 인자로 두어 p(x), q(x) 같은 함수의 형태로 쓰기도 함. p(x) : 2ˣ < 10 (x ∈ N) 진리집합 : 전체집합의 원소 중 명제함수를 참으로 만드는 원소들의 집합 정의 : P = {x | x ∈ U, p(x)} 위의 경우 진리집합은 {1,2,3} (4이상은 거짓이 됨) 한정자 : 명제함수의 인자 범위 규정 ∀(for all..

[Hadoop] 맵리듀스 프로그래밍 실행 (WordCount)

해당 포스팅에서는 맵리듀스 프로그램으로 단어수를 세는 방법을 설명합니다 WordCount 맵리듀스 프로그램 실행 1. 하둡 디렉토리로 이동한다. cd hadoop-3.3.4/sbin/ 2. input이 되는 디렉토리를 HDFS상에 만든다. bin/hdfs dfs -mkdir input bin/hdfs : hdfs와 관련된 기능을 제공해주는 권한 조정하는 곳 CF) 위 코드를 실행했을 때 아래와 같이 디렉토리가 없다고 나온다면 Hdfs 쪽에 User폴더와 내 sub폴더를 만들어 줍니다. bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/hdoop CF) 아래와 같이 Connection Error가 발생한다면 아래 코드를 실행하여 hdfs와 yarn을 실행시켜줍니다..

반응형