https://support.spatialkey.com/spatialkey-sample-csv-data/
Sample CSV Data – SpatialKey Support
Jump right in and try out SpatialKey using sample data! SpatialKey unlocks the full potential of time- and location-based information like nothing else out there. In minutes, you can upload a data file and create and share interactive time- and map-based a
support.spatialkey.com
[위에서 제공하는 csv를 사용하였다]
주피터 노트북의 출력 부분은 HTML 변환 과정에서 많이 찌그러 졌다 ㅠㅜ
In [1]:
import findspark
In [2]:
findspark.init('/home/hak/spark-2.4.5-bin-hadoop2.7/') #spark찾기
In [3]:
from pyspark.sql import SparkSession
In [4]:
spark = SparkSession.builder.appName('groupby').getOrCreate()
In [5]:
df = spark.read.csv('SalesJan2009.csv', inferSchema=True, header=True) #csv불러오기
In [6]:
df.printSchema() #초기스키마
In [11]:
df.show()
In [12]:
df = df.select("Transaction_date","Product","Price") #필요한 열들만 모아서 다시 정의
In [15]:
df.show()
In [25]:
df.printSchema()
In [27]:
from pyspark.sql.types import DoubleType
In [28]:
df = df.withColumn('Price',df['Price'].cast(DoubleType())) #Price가 문자열이면 계산하기 어려우므로 Double형으로 cast
In [30]:
df.groupBy('Product').min().show() #제품 별 최소 가격
In [31]:
df.agg({'Price':"max"}).show() #price중 최댓 값
In [32]:
grouped =df.groupBy('Product') #Product열만 groupy해서 가져오기
In [34]:
grouped.agg({'Price':'max'}).show() #각 그룹 별 최댓값 가져오기
In [35]:
from pyspark.sql.functions import countDistinct, avg,stddev #다양한 연산을 위해 모듈 import
In [36]:
df.select(countDistinct('Product')).show() #Distinct= 중복 제거 즉, Product의 개수를 센다.
In [37]:
df.select(countDistinct('Product').alias('Distinct Product')).show() #alias를 통해서 열값 바꿔주기
In [38]:
df.select(avg('Price')).show() #평균 값
In [39]:
df.select(stddev('Price')).show() #표준 편차
In [40]:
from pyspark.sql.functions import format_number
In [41]:
Price_std = df.select(stddev('Price').alias('std'))
In [42]:
Price_std.show()
In [43]:
Price_std.select(format_number('std',2).alias('std')).show() #소수점 2자리까지 표현하기
In [44]:
df.orderBy('Price').show() #Price를 기준으로 오름차순으로 정렬하기
In [47]:
기df.orderBy(df['Price'].desc()).show() #desc는 내림차순
In [ ]:
느낀 점 : 데이터 베이스의 SQL과 다를게 없는 기능을 보여주지만 pyspark.sql은 처음 다루기 때문에 조금 어색한 부분이 없지 않아 있다. 프로그램마다 배우는 연산기능, 데이터 활용 방법들을 익숙하게 다룰 수 있다면은 좀 더 편하게 다룰 수 있을 것 같고 데이터를 추출하는 부분에서 많은 이점이 있을 것 같다.
반응형
'빅데이터 | 머신러닝 | 딥러닝 > 빅데이터 분석' 카테고리의 다른 글
[pandas/Selenium/BeautifulSoup4] 야구 시즌 기록 데이터(STATIZ) 웹 크롤링 후 DataFrame 만들기. DataFrame을 csv로 만들고 csv파일 로컬에 저장하기! (feat. Colab) (6) | 2020.09.08 |
---|---|
[pandas] 공공 데이터 XML 크롤링을 통해 dataFrame으로 만들어보기 (0) | 2020.09.04 |
[pandas] 코로나 수치 예측하기 (feat. Linear Regression) (0) | 2020.05.03 |
spark를 이용해서 Missing Data다루기 (0) | 2020.04.29 |
spark를 이용해서 삼성전자 주식 분석하기 (0) | 2020.04.15 |