blob: 30584c76b511ad4f4347f4a296922de264db01d9 [file] [log] [blame]
from appdata import AppData
import predictionio
import sys
from app_config import APP_KEY, API_URL
def batch_import_task(app_data, client, all_info=False):
print "[Info] Importing users to PredictionIO..."
count = 0
for k, v in app_data.get_users().iteritems():
count += 1
if all_info:
print "[Info] Importing %s..." % v
else:
if (count % 32 == 0):
sys.stdout.write('\r[Info] %s' % count)
sys.stdout.flush()
client.create_user(v.uid)
sys.stdout.write('\r[Info] %s users were imported.\n' % count)
sys.stdout.flush()
print "[Info] Importing items to PredictionIO..."
count = 0
for k, v in app_data.get_items().iteritems():
count += 1
if all_info:
print "[Info] Importing %s..." % v
else:
if (count % 32 == 0):
sys.stdout.write('\r[Info] %s' % count)
sys.stdout.flush()
client.create_item(v.iid, ("movie",))
sys.stdout.write('\r[Info] %s items were imported.\n' % count)
sys.stdout.flush()
print "[Info] Importing rate actions to PredictionIO..."
count = 0
for v in app_data.get_rate_actions():
count += 1
if all_info:
print "[Info] Importing %s..." % v
else:
if (count % 32 == 0):
sys.stdout.write('\r[Info] %s' % count)
sys.stdout.flush()
client.user_rate_item(v.uid, v.iid, v.rating, t=v.t)
sys.stdout.write('\r[Info] %s rate actions were imported.\n' % count)
sys.stdout.flush()
if __name__ == '__main__':
app_data = AppData()
client = predictionio.Client(appkey=APP_KEY, threads=1, apiurl=API_URL)
batch_import_task(app_data, client)
client.close()