일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- scikit-learn
- 시각화
- konlpy
- iNT
- 형태소분석기
- Tableau
- numpy
- 태블로
- Python
- Udemy
- 크롤링
- 파이썬
- SQL
- 데이터분석
- pyspark
- 머신러닝
- pandas
- 데이터
- Okt
- input
- Word Cloud
- 데이터 분석
- 인공지능
- ionehotencoding
- selenium
- Today
- Total
목록데이터분석/PySpark (12)
반전공자

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ PySpark의 MLlib 패키지를 이용해 실제로 분류 모델을 학습해보자! MLlib = Machine Learning Library → 스트리밍에 대해 학습 모델링을 지원하는 유일한 라이브러리 다룰 내용 - MLlib으로 모델링하기 위해 데이터 준비 - 통계적 테스트 수행 - 로지스틱 회귀를 통해 유아 생존율 예측 - 가장 예측 가능한 feature 선택과 랜덤 포레스트 모델 학습 패키지에 대한 개요 세 단계의 머신러닝 기능 1. 데이터 전처리 : feature 추출, 변형, 선택, 카테고리 feature에 대한 해싱, 자연어 처리 기술 2. 머신 러닝 알고리즘 : 몇몇 유명하고 고급 레벨인 회귀, 분류,..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 데이터에 친숙해지기 모델링 이전에 데이터에 대해 숙지하고 있어야 한다. 숙지하는 과정으로 기술 통계부터 살펴보자. 신용카드 사기 데이터셋 기술통계 - 데이터셋에서의 관찰 값 개수, 각 컬럼의 평균과 표준편차 또는 최댓값/최솟값 등의 기본적인 정보 제공 # 데이터 타입 로드 import pyspark.sql.types as typ fraud = sc.textFile('/Users/hayeon/Downloads/ccFraud.csv') header = fraud.first() fraud = fraud.filter(lambda row : row != header) \ .map(lambda row: [int(ele..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 아웃라이어 - 대부분의 데이터와는 매우 다른 분포를 띄는 데이터 - Q1–1.5*IQR ~ Q3 + 1.5*IQR 범위를 벗어나면 이상치라고 정의한다. - IQR = 상위 75%과 하위 25%의 차 샘플 데이터 생성 >>> df_outliers = spark.createDataFrame([ (1, 143.5, 5.3, 28), (2, 154.2, 5.5, 45), (3, 342.3, 5.1, 99), (4, 144.5, 5.5, 33), (5, 133.2, 5.4, 54), (6, 124.1, 5.1, 21), (7, 129.2, 5.3, 42)], ['id', 'weight', 'height', 'age'..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 비행기록 성능 유스케이스 - 항공사의 지연율과 비행 지연의 원인에 대해 분석 - 비행 지연의 여러 변수를 확인하기 위해 공항 데이터셋과 조인 ※ 비행 지연과 관련된 변수를 더 잘 이해하려는 목적! 1. 출발지 데이터셋 준비하기 # 파일 경로 설정 >>> flightPerfFilePath = '/Users/hayeon/Downloads/departuredelays.csv' >>> airportsFilePath = '/Users/hayeon/Downloads/airport-codes-na.txt' # 공항 데이터셋 획득 >>> airports = spark.read.csv(airportsFilePath, hea..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 데이터프레임 - 관계형 DB의 테이블에서 칼럼 이름으로 구성된 변경 불가능한 분산 데이터 컬렉션 - 분산된 데이터 컬렉션에 구조체를 씌움으로써 스파크 사용자는 스파크 SQL로 구조적 데이터를 쿼리하거나 람다 대신 표현함수 사용 가능 - 데이터를 구조적으로 바꾸면서 스파크 엔진의 스파크 쿼리 성능이 크게 향상! 파이썬에서의 RDD 커뮤니케이션 - 모든 RDD 트랜스포메이션은 최초에 파이썬 RDD 자바 객체로 매핑된다. - 작업들이 스파크 워커에 푸시됐을 떄, 파이썬 RDD 객체는 파이썬이 처리할 코드와 데이터를 보내기 위해 파이프로 파이썬 subprocess를 실행 - 정리하자면,,, PySpark 드라이버 ..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ .count(... ) 함수 - 앨리먼트 개수 세기 >>> data_reduce = sc.parallelize([1, 2, .5, .1, 5, .2], 3) >>> data_reduce.count() 6 → 위 앨리먼트 개수 6으로 알맞게 출력 .saveAsTextFile(...) 함수 - RDD를 텍스트 파일로 저장 - 각 파티션을 분리된 파일에! >>> data_key = sc.parallelize( ... [('a', 4), ('b', 3), ('c', 2), ('a', 8), ('d', 2), ('b', 1), ('d', 3)], 4) >>> data_key.saveAsTextFile('/Users/..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 액션 - 데이터셋에서 스케줄된 태스크 실행 ※ 트랜스포메이션과 액션의 차이점 트랜스포메이션 * RDD를 변환하는 함수 * 새로운 RDD를 생성하고 데이터의 처리 및 가공을 수행 * 레코드 단위로 수행 → 데이터셋을 변경하고 가공하기 위한 일련의 명령어 액션 * 최종 결과를 반환하는 함수 * 실제 계산 수행하며 RDD의 모든 요소 처리 → 액션 호출되면 저장된 명령어가 실제 수행되고 최종 결과값을 반환 .take(...) 함수 - 하나의 파티션에서 가장 위에 있는 n행을 리턴 - collect() 보다 자주 쓰임 - 큰 데이터셋일 수록 중요 → 이전 포스팅에서도 꾸준히 레코드를 확인할 때 take 함수를 사용..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ .sample() 트랜스포메이션 - 데이터셋으로부터 임의로 추출된 샘플 리턴 - 첫번째 파라미터 : 중복 허용 여부 명시 - 두번째 파라미터 : 리턴할 데이터셋, 전체 데이터셋 간 크기 비율 명시 - 세번째 파라미터 : 임의 숫자를 생성하기 위한 시드 * 원본 데이터의 10%에 해당하는 임의의 샘플 얻기 >>> fraction = 0.1 >>> data_sample = data_from_file_conv.sample(False, fraction, 666) * 데이터셋 크기 검증 >>> print('Original dataset: {0}, sample: {1}'.format(data_from_file_conv..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 트랜스포메이션 트랜스포메이션은 데이터셋의 형태를 만듦 → 필터링, 조인, 데이터셋 내 값들에 대한 트랜스코딩을 포함 RDD에는 스키마가 없기 때문에 생산된 데이터셋에서의 스키마를 잘 알고있다고 가정함. 파싱된 데이터셋에서 정보 위치는 이전 텍스트 파일 로드 포스팅의 extractInformation() 함수를 참고! map() 트랜스포메이션 - 사망 날짜를 숫자 값으로 변형하는 새로운 데이터셋 생성 >>> data_2014 = data_from_file_conv.map(lambda row: int(row[16])) >>> data_2014.take(10) 예시로, 2014U7CN 라고 입력되어있는 사망 날짜..

토마스 드라마브, 데니 리의 "PySpark 배우기"를 보고 배워나가는 과정을 기록한 글입니다 ♪ 1. 텍스트 파일 로드 VS14MORT라는 파일을 다운로드한다. 다운로드 주소는 http://tomdrabas.com/data/VS14MORT.txt.gz 를 들어가면 바로 다운로드가 진행된다. 다운로드 후 압축을 풀고~ SparkContext의 textFile 함수로 텍스트 파일을 불러온다. data_from_file = sc.textFile('/Users/hayeon/Downloads/VS14MORT.txt', 4) 경로 뒤의 숫자 4는 데이터셋이 나눠진 파티션의 개수를 의미한다. 가장 첫번째 행을 살펴보자 >>> data_from_file.take(1) 음 아주 보기 복잡하게 되어있군요~ 2. 리스트로..