스파크완벽가이드 - 13장 RDD 고급개념
·
DataPipeline/Spark
핵심주제- 집계와 키-값 형태의 RDD- 사용자 정의 파티셔닝- RDD 조인  13.1 키-값 형태의 기초words.map(lambda word: (word.lower(), 1)).take(5)>>> [('spark', 1), ('the', 1), ('definitive', 1), ('guide', 1), (':', 1)]- [1] key-value 구조로 만들기 ( 튜플 )keyword = words.keyBy(lambda word: word.lower()[0])>>> [('s', 'Spark'), ('t', 'The'), ('d', 'Definitive'), ('g', 'Guide'), (':', ':')]- [2] key, value 값 추출하기keyword.keys().collect()keywor..
스파크완벽가이드 - 12장 RDD
·
DataPipeline/Spark
12.0 RDD- 저수준 API는 RDD, SparkContext, 브로드캐스트 변수, 분산형 공유변수를 의미- 대부분 고수준 API (DataFrame, Dataset)을 사용하는 것이 좋음- DataFrame, Dataset 실행 시 RDD로 컴파일 됨  12.1 저수준 API란- 언제 사용할까?  - 클러스터의 물리적 데이터의 배치를 아주 세밀하게 제어하는 상황  - RDD를 사용해 개발된 기존 코드를 유지하는 경우  - 사용자가 정의한 공유 변수를 다뤄야 하는 경우 (14장 참조)- 어떻게 사용할까?  - 저수준 API 진입점인 SparkContext 사용  - spark.sparkContext  12.2 RDD 개요- RDD는 불변성을 가지고 병렬로 처리할 수 있는 파티셔닝된 레코드 모음- Da..
스파크완벽가이드 - 11장 Dataset
·
DataPipeline/Spark
11.0 DatasetDataFrame- 스파크 1.3에서 처리 속도 증가를 위해 추가 됨- 데이터를 스키마 형태로 추상화 하고, 카탈리스트 옵티마이저가 쿼리를 최적화하여 처리합니다.- DataFrame 또한 row 타입의 DataSet  ㄴ row type 참조 : https://spark.apache.org/docs/latest/api/java/org/apache/spark/sql/Row.htmlDataSet- 스파크 1.6에서 추가  - 데이터의 타입체크, 데이터 직렬화를 위한 인코더, 카탈리스트 옵티마이저를 지원하여 데이터 처리 속도를 더욱 증가- jvm 을 이용하는 언어인 스칼라와 자바에서만 사용할 수 있음- 스칼라나 자바를 사용할 때 모든 DataFrame은 Dataset을 의미- 스칼라에서는..
스파크완벽가이드 - 10장 Spark SQL
·
DataPipeline/Spark
10장 Spark SQL- 시스템 함수 사용 및 사용자 정의 함수를 사용할 수 있음- 워크로드 최적화하기 위해 쿼리 실행 계획 분석 가능- DataFrame과 Dataset API와 통합되어있어 SQL 데이터 변환 시 동일한 실행 코드로 컴파일 됨  10.3 빅데이터 SQL: 스파크 SQL- 스파크 2.0 버전은 하이브의 HiveQL을 지원하는 자체 개발 SQL 파서가 포함되어 있음- 스파크 SQL은 OLTP가 아닌 OLAP로 동작하므로 매우 낮은 지연 시간이 필요한 쿼리 수행에는 맞지 않음- 스파크와 하이브와의 관계 ㄴ 하이브 메타스토어는 여러 세션에서 사용할 테이블 정보를 보관하고 있음 ㄴ 스파크 SQL은 하이브 메타스토어를 사용하므로 하이브와 연동 가능 ㄴ 하이브 메타스토어에 접속하려면 몇가지 설정..
스파크완벽가이드 - 9장 데이터 소스
·
DataPipeline/Spark
스파크 핵심 외부 데이터소스- CSV- JSON- PARQUET- ORC- JDBC/ODBC- TEXT FILE- 파일 옵션    ㄴ https://spark.apache.org/docs/latest/sql-data-sources-csv.html CSV Files - Spark 3.5.1 Documentation spark.apache.org  9.1 데이터소스 API 구조읽기 모드데이터 읽기 핵심 구조- DataFrameReader.format(...).option("key","value").schema(...).load()- DataFrameReader는 SparkSession의 read 속성으로 접근읽기 모드 지정 값- 포맷- 스키마- 읽기 모드 ㄴ permissive : 오류레코드 null..
스파크완벽가이드 - 8장 조인
·
DataPipeline/Spark
8.1 조인 표현식- 스파크는 왼쪽과 오른쪽 데이터셋에 있는 하나 이상의 키값을 비교하여 데이터셋을 조인 함- 스파크는 일치하는 키가 없는 로우는 조인에 포함시키지 않음  8.2 조인 타입- inner join- outer join - left outer join - right outer join- left semi join- left anti join- natural join- cross join- 예제를 위한 Data 생성person = spark.createDataFrame([ (0, "Bill Chambers", 0, [100]), (1, "Matei Zaharia", 1, [500, 250, 100]), (2, "Michael Armbrust", 1, [250, 100])])\ ..
스파크완벽가이드 - 6장 다양한 데이터 타입 다루기
·
DataPipeline/Spark
다양한 데이터 타입- boolean- 수치- 문자열- data와 timestamp- null 값- 복합 데이터- 사용자 정의 함수  6.1 API는 어디서 찾을까- DataFrame은 Row 타입을 가진 Dataset이므로 결국에는 Dataset 메서드를 참조함- org.apache.spark.sql.functions 데이터 타입과 다양한 함수를 제공- 분석에 사용할 DataFramedf = spark.read.format("csv")\ .option("header", "true")\ .option("inferSchema", "true")\ .load('/Users/myName/Test/Spark_ref/sparkGuide/data/2010-12-01.csv')df.printSchema(..
스파크완벽가이드 - 5장 구조적 API 기본 연산
·
DataPipeline/Spark
- DataFrame은 Row 타입의 레코드와 연산 여러 컬럼으로 구성- 스키마는 각 컬럼명과 데이터의 타입을 정의- 파티셔닝은 DataFrame이나 Dataset이 클러스터에서 물리적으로 배치되는 형태를 정의- 예제를 위한 DataFrame 생성df = spark.read.format('json').load('/Users/myname/Test/Spark_ref/sparkGuide/data/2015-summary.json')df.printSchema()root |-- DEST_COUNTRY_NAME: string (nullable = true) |-- ORIGIN_COUNTRY_NAME: string (nullable = true) |-- count: long (nullable = true)  5.1 스..
wave35
'DataPipeline' 카테고리의 글 목록 (5 Page)