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()
>> 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()
>> sns.distplotmovie_age,rug=True,kde=True,color='g')
>> plt.show()
탐색을 통해 얻은 결과
- 나이별 영화개봉 연도 및 나이 분포
: 1998년도를 기준으로, 영화의 개봉은 1990년대 초반부터 급격히 증가했으며 이는 반대로 사람들의 영화에 대한 관심도가 이전에 비해 매우 크게 상승했다고 생각할 수 있다.
[꼬리 분석질문1] "어떤 영화 장르가 더 많이 개봉하였을까?"
[꼬리 분석질문1] "어떤 영화 장르에 대해 사람들이 더 많은 관심을 가졌을까?"