Je développe habituellement avec Ruby, mais à mesure que le travail du système d'analyse de big data a augmenté, il est devenu nécessaire de jouer avec python, donc tout d'abord, un système avec un simple rôle de type API avec une bouteille de cadre légère J'ai décidé de le faire.
C'est incroyablement léger et facile, vous ne pouvez donc utiliser que les bonnes parties de python et utiliser le langage principal.
① Hit l'API depuis l'application ruby ② Obtenez les données dans MySQL avec l'application écrite en python ③ Calculer avec python ④ Renvoyer le résultat du calcul à l'application ruby
pip install virtualenv
virtualenv bottle_sample
cd bottle_sample
source bin/activate
pip install bottle
score_calculator.py
# -*- coding: utf-8 -*-
from bottle import route, run
import networkx as nx
db_name = {Nom de la base de données}
host = {Hôte DATABASE}
username = {Nom d'utilisateur MySQL}
passwd = {Mot de passe MySQL}
@route('/update')
def update
g = nx.DiGraph()
import mysql.connector
connect = mysql.connector.connect(db=db_name, host=host, port=3306, user=username, passwd=passwd)
cur=connect.cursor()
cur.execute("select from_user_id,to_user_id from awesome_graph_data)
rows = cur.fetchall()
for row in rows:
if row[0] is not None:
g.add_node(row[0])
g.add_node(row[1])
g.add_edge(row[0],row[1])
cur.close()
connect.close()
pr=nx.pagerank(g,alpha=0.85,personalization=None, max_iter=500)
for id, score in pr.items():
print id,score #Je vais l'omettre cette fois, mais vous pouvez l'enregistrer dans mysql ici
return str(pr)
Vous pouvez maintenant calculer le pagerank à partir du graphique dirigé et le sauvegarder dans mysql.
score_calculator.py
@route('/score/<user_id>')
def score
import mysql.connector
connect = mysql.connector.connect(db=db_name, host=host, port=3306, user=username, passwd=passwd)
cur=connect.cursor()
cur.execute("select score from scoda_data where user_id = {{user_id}}")
score = cur.fetchall()
return score
Vous pouvez maintenant obtenir le score d'un user_id spécifique.
Des applications très simples peuvent être facilement créées avec python + bouteille. Vous pouvez également créer facilement un fichier de vue pour créer un supplément Web.
J'ai trouvé intéressant de sortir avec divers calculs qui n'allaient pas bien avec le rubis.
Recommended Posts