애플 주식 데이터를 가지고 간단한 데이터 분석해보기(PySpark)
Spark Session 만들기
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark Dataframe basic example") \
.getOrCreate()
애플주식 csv파일을 로딩하고 spark 데이터 프레임으로 변경하기
import pandas as pd
apple_pandas_df = pd.read_csv("https://pyspark-test-sj.s3-us-west-2.amazonaws.com/appl_stock.csv")
apple_spark_df = spark.createDataFrame(apple_pandas_df)
어떤 컬럼 이름들이 있는가?
apple_spark_df.columns
스키마를 프린트해보기
apple_spark_df.printSchema()
처음 5개 레코드를 출력해보기
apple_spark_df.show(n=5)
describe를 사용하여 데이터프레임의 컬럼별 통계보기
apple_spark_df.describe().show()
close 컬럼의 평균값은 얼마인가
from pyspark.sql.functions import mean
apple_spark_df.select(mean("Close")).show()
volume 컬럼의 최대값과 최소값은?
from pyspark.sql.functions import min,max
apple_spark_df.select(max("Volume"),min("Volume")).show()
HV ratio라는 이름의 새로운 컬럼을 추가한 데이터프레임 만들기. 이 컬럼의 값은 High/Volume으로 계산된다.
apple_spark_df_with_hv = apple_spark_df.withColumn("hv ratio", apple_spark_df.High/apple_spark_df.Volume)
apple_spark_df_with_hv.show(5)
월별 close 컬럼의 평균값은?
from pyspark.sql.functions import month
monthdf = apple_spark_df.withColume("Month",month("Date"))
monthavgdf = monthdf.select(["Month","Close"]).groupBy("Month").mean()
monthavgdf.show()
monthavgdf.select(["Month","avg(Close)"]).orderBy("Month").show()