핵심내용 pyspark의 데이터프레임과 pandas 데이터프레임의 type hint를 비교해봅니다. type hint 비교 아래와 같이 라이브러리를 생성해줍니다. from pyspark.sql import * from pyspark.sql.types import * from pyspark.sql.functions import * import pandas as pd 그리고, pandas의 DataFrame과 pyspark의 DataFrame의 type을 비교해봅시다. print(type(spark.sql("select 1"))) print(type(pd.DataFrame([]))) 시작은 다르지만, 끝은 모두 DataFrame으로 동일합니다. 여기서 주목할점은 다음과 같은 라이브러리 임포트 형식인데요. f..
핵심 내용 Spark를 사용하며, 고수준API인 Dataframe객체를 이용하다 보니 RDD 함수를 사용할 일이 잘 없었다. 그러다가, 최근 들어 flatMap을 유용하게 사용하고 있는데 오늘은 flatMap 함수에 대해서 다루어 보려고 한다. 글의 목표 - Map 함수에 대해 이해하기 - Map함수와 flatMap함수의 차이 이해하기 - flatMap함수를 이용하여 explode해보기 (본 글에서 RDD에 대해 따로 다루지는 않습니다. 관련된 내용은 아래 글을 참고해주세요.) https://gibles-deepmind.tistory.com/136 [PySpark] 자료 구조와 연산 원리 - 스파크 누구냐 넌? 핵심내용 스파크의 고유한 자료 구조와 연산 특징에 대해서 다루어보고자 합니다. ※스파크 설치 ..
핵심내용 스파크의 고유한 자료 구조와 연산 특징에 대해서 다루어보고자 합니다. ※스파크 설치 방법에 대해서는 다루지 않습니다. 대신 간단한 데이터브릭스 샘플 코드를 포함합니다. 본 글에서 다루는 내용 1. 데이터브릭스 커뮤니티에디션 이용 방법 2. Map reduce vs Spark 3. Driver와 Executor 4. RDD 5. Transformation 6. DataFrame 데이터브릭스 커뮤니티에디션 1. Try Databricks에 접속한다. https://databricks.com/try-databricks Try Databricks - Unified Data Analytics Platform for Data Engineering Discover why businesses are turni..
Pyspark Mllib에서 Kmeans 알고리즘 사용법을 다루는 글이다. (데이터브릭스 이용) 1. 라이브러리 세팅 import pandas as pd # 스파크 sql 내장함수 from pyspark.sql import * # 스파크 sql 내 자료구조 타입 from pyspark.sql.types import * # 스파크 sql 내 여러 함수들 from pyspark.sql.functions import * # 스케일러, VectorAssembler -> 여러 자료값들을 하나의 vector로 모아줌 from pyspark.ml.feature import MinMaxScaler, VectorAssembler # mllib에서 연산을 위해서는 vector형 자료 구조로 변환 from pyspark.m..
오늘은 pyspark.sql 내 메서드들에 대해 알아보려 한다. 0. import pyspark.sql https://spark.apache.org/docs/2.4.0/api/python/pyspark.sql.html#module-pyspark.sql.functions pyspark.sql module — PySpark 2.4.0 documentation Parameters: path – string, or list of strings, for input path(s), or RDD of Strings storing CSV rows. schema – an optional pyspark.sql.types.StructType for the input schema or a DDL-formatted string..
TypeError : Invalid argument, not a string or column PySpark에서 Python 내장 함수를 사용하던 도중 위와 같은 에러를 겪었다. 원인은 spark.sql 내장 함수로 덮어씌어졌기 때문! 스파크의 내장 함수는 str이나 column형태의 자료형을 파라미터로 받는다. import builtins abs = getattr(builtins, "abs") 이럴때는 위와 같이 python의 원래 내장 함수를 다시 선언해주면 된다!
www.yes24.com/Product/Goods/67116641 스파크 완벽 가이드 스파크 창시자가 알려주는 스파크 활용과 배포, 유지 보수의 모든 것 오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서이다. 스파크 사용법부터 배포, www.yes24.com 스파크 완벽 가이드를 참조하여 작성하였습니다. 트랜스포메이션 - 스파크의 데이터 구조는 "불변성"을 가짐 - 즉, 한번 생성하면 변경 불가 - 따라서, 변경을 하기 위해서는 변경하는 방법을 스파크에 알려주어야 함 - 여기서 중요한 포인트 알려주는 행동과 / 실제 행동은 별개이다. - 즉, 알려주기만 한다면 "변경 방법만 알고 있는채로" 액션은 하지 않고 대기를 하고 있게 된다. 액션 - 트랜스포메이션은 곧 "논리적..
초록 1. pivot 2. unpivot pivot val pv_dataframe = df_dataframe .groupBy("col0") .pivot("col1") .agg(countDistinct("col2").as("colname")) groupBy와 pivot에 컬럼을 여러개 넣을 수 있다. agg에도 마찬가지 unpivot val unpv_dataframe = df_dataframe .selectExpr("group", "stack(2, 'col1', col1, 'col2', col2)") 여기서 중요한 것은 stack에 "1. 들어갈 열의 숫자를 정한다"와 col1과 col2 stack시길 열을 'col1', col1 이렇게 각각 두번씩 적어줘야 한다는 것이다. 이외에 where로 조건을 붙이..