/Steam_Analysis_For_Gamers

Analysis performed on data from the Steam platform using Apache Spark and Cloud services such as Amazon Web Services.

Primary LanguagePython


Analysis for Gamers


Steam Analysis for Gamers es un proyecto con el cual hemos realizado un procesamiento por bloques (Batch Data Processing) y su posterior análisis con datos recolectados de la plataforma de videojuegos Steam.

El proyecto consta de dos ideas principales:

  • La primera idea está basada en la recomendación de una desarrolladora de videojuegos para un género en concreto, en base a las votaciones obtenidas en juegos lanzados anteriormente por la misma desarrolladora que pertenecen a ese mismo género.

  • La segunda idea se podría dividir en dos:

    • ¿Qué juegos podríamos ejecutar en nuestro ordenador en función del procesador que tenemos?
    • ¿Qué procesador deberíamos comprar si queremos jugar a determinados juegos?

Los scripts que se han desarrollado se pueden ver en su correspondiente carpeta y son los siguientes:

├── Scripts
│   ├── idea1
│   │   ├── idea1_local.py: Fichero que realiza las recomendaciones en modo local. Este permite aprovecharse de los núcleos de tu ordenador además de tener la ruta del dataset enlazada a su carpeta. 
│   │   ├── idea1_cluster.py: Fichero que realiza las recomendaciones en un cluster. Está preparado para poder acceder al dataset una vez esté ubicado en el sistema de ficheros de Hadoop.   
│   │   ├── rankingPara_.csv: Ficheros con los resultados generados por los scripts.
│   │   ├── graph.py: Fichero que permite crear las gráficas con los archivos CSV que generan los scripts mencionados anteriormente.
│   │	├── pruebas.txt: Contiene posibles desarrolladoras y géneros que podríamos meter como entrada
│   │   ├── Capturas: Contiene algunos ejemplos de salida en capturas que se han hecho durante el desarrollo.
│   │   ├── Gráficas: Imagenes generadas por el archivo graph.py
│   │
│   ├── idea2.py: Fichero que realiza el tratamiento de los datasets que se utilizan en dicha idea.
└── 

Requisitos

  • Sistema Operativo Linux
  • Python 3
  • Apache Spark

Instalación en Ubuntu

Python

$ sudo apt-get install python3

Spark

$ sudo curl -O http://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgz
$ sudo tar xvf ./spark-2.2.0-bin-hadoop2.7.tgz
$ sudo mkdir /usr/local/spark
$ sudo cp -r spark-2.2.0-bin-hadoop2.7/* /usr/local/spark

Configura el entorno

Añade la siguiente línea al archivo .source:

$ export PATH="$PATH:/usr/local/spark/bin"

Ejecución

Idea 1

En el caso de querer ejecutar esta idea en local, se debe ejecutar un comando como el siguiente:

$ spark-submit idea1_local.py "Nombre desarrolladora" "Genero"

En el caso de querer ejecutarlo en un cluster, se debería ejecutar lo siguiente:

$ spark-submit --num-executors N --executor-cores M idea1_cluster.py "Nombre desarrolladora" "Genero"

Siendo "Nombre desarrolladora" y "Genero" datos escogidos del fichero pruebas.txt. Las variables N y M dependen del cluster lanzado.

Estos dos scripts, generarán una salida en la terminal de Apache Spark y otra en un fichero con formato CSV con los resultados obtenidos.

En cuanto al script de las gráficas, valdría con poner un comando en la terminal como el siguiente:

$  python3 graph.py "rankingPara_.csv" "Genero"

Siendo "rankingPara_.csv" los resultados que acabamos de generar.

Idea 2

Esta idea no se ha podido llevar a cabo en su completitud por la complejidad en el tratamiento de los datos. A pesar de esto, este tratamiento se realiza correctamente y es completamente funcional. Se puede comprobar con el siguiente comando:

$ spark-submit idea2.py

Datasets

Miembros

  • Adrián Ogáyar Sánchez
  • Arturo Barbero Pérez
  • Jesús Verdúguez Gervaso
  • Pedro Martínez Gamero