brunch

매거진 Spark+Python

You can make anything
by writing

C.S.Lewis

by 보나벤투라 Nov 11. 2017

영화데이터 탐색

http://files.grouplens.org/datasets/movielens/ml-100k.zip

실습 데이터 : 사용자들이 영화에 대해 매긴 점수와 관련된 100k 데이터 집합

[root@client_server ~]# vi $SPARK_HOME/conf/spark-env.sh

export PYSPARK_DRIVER_PYTHON=/root/anaconda3/envs/py35/bin/ipython3

[root@client_server ~]# $SPARK_HOME/bin/pyspark --master spark://master:7077

pyspark를 아이 파이썬 콘솔 기능으로 사용 가능!



영화 개봉 연도 분포 구하기

>> rdd=sc.textFile("dataset/ml-100k/u.item")

>> rdd.take(1) #check data contents and separator

>> movie_data=rdd.map(lambda x:x.split("|"))

>> len(movie_data.collect()) #1682

#we need only release year of movies

#so, we need to make a function to process data and error together

>> def convert_year(x) : 

        try:

            return int(x[-4:])

        except:

            return 1900

>> movie_year=movie_data.map(lambda x:x[2]).map(lambda x:convert_year(x))

>> year_filtered=movie_year.filter(lambda x:x!=1900)

>> len(year_filtered.collect()) #1681, error was only one in movie_year dataset

>> plt.hist(year_filtered.collect(),bins=19,color='lightblue',normed=True)

>> fig=plt.gcf()

>> fig.show()

1994년 이후 개봉한 영화들이 압도적으로 많다.


>> import seaborn as sns

>> sns.distplot(year_filtered.collect(),rug=True,kde=True,color='g')

>> plt.show()

영화나이 분포 구하기 (*데이터 집합에서 현재연도는 1998)

>> movie_age=year_filtered.map(lambda x:(1998-x)).collect() 

>> plt.hist(movie_age,bins=19,color='lightblue',normed=True)

>> fig=plt.gcf()

>> fig.show()

개봉한지 얼마 되지 않은, 0~4살의 신생영화들이 압도적으로 많다.

>> sns.distplotmovie_age,rug=True,kde=True,color='g')

>> plt.show()



탐색을 통해 얻은 결과


- 나이별 영화개봉 연도 및 나이 분포

:  1998년도를 기준으로, 영화의 개봉은 1990년대 초반부터 급격히 증가했으며 이는 반대로 사람들의 영화에 대한 관심도가 이전에 비해 매우 크게 상승했다고 생각할 수 있다.

[꼬리 분석질문1] "어떤 영화 장르가 더 많이 개봉하였을까?"

[꼬리 분석질문1] "어떤 영화 장르에 대해 사람들이 더 많은 관심을 가졌을까?"



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari