In [1]:
import MySQLdb

In [25]:
db = MySQLdb.connect(host="localhost", user="root", db = "amazon_reviews")

In [26]:
cursor = db.cursor()

In [27]:
cursor.execute("SHOW TABLES;")


Out[27]:
4L

In [28]:
cursor.fetchall()


Out[28]:
(('5_stars',),
 ('clean_data_ihope',),
 ('multiple_5_star_reviews',),
 ('reviews_2012_2013',))

In [36]:
cursor.execute("SELECT COUNT(*) FROM multiple_5_star_reviews GROUP BY PID;")


Out[36]:
15414L

In [34]:
prod_index = 0
product = ''

In [42]:
def testfunction(cur):
    cur.execute("SHOW TABLES;")
    tables = cur.fetchall()
    print tables

In [43]:
testfunction(cursor)


(('500_reviews',), ('5_stars',), ('clean_data_ihope',), ('multiple_5_star_reviews',), ('reviews_2012_2013',))

In [57]:
def Jaccard (user_one, user_two, tablename, cursor):
    intersect = 0
    user_one = '"' + user_one + '"'
    user_two = '"' + user_two + '"'
    cursor.execute("SELECT PID FROM "+tablename+" WHERE RUserID = " + user_one + ";")
    prods_one = cursor.fetchall()
    print prods_one
    cursor.execute("SELECT PID FROM "+ tablename+" WHERE RUserID = " + user_two + ";")
    prods_two = cursor.fetchall()
    print prods_two
    intersect = 0
    for i in range(min(len(prods_one), len(prods_two))):
        if prods_one[i] == prods_two[i]:
            intersect += 1
    print intersect
    print len(prods_one) + len(prods_two)
    return intersect/(len(prods_one) + len(prods_two))

In [58]:
Jaccard('AYGDKEVDCOHRJ', 'A1QAXWETH56D6J', '500_reviews', cursor)


---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-58-811d447689d7> in <module>()
----> 1 Jaccard('AYGDKEVDCOHRJ', 'A1QAXWETH56D6J', '500_reviews', cursor)

<ipython-input-57-7b779e166aed> in Jaccard(user_one, user_two, tablename, cursor)
      3     user_one = '"' + user_one + '"'
      4     user_two = '"' + user_two + '"'
----> 5     cursor.execute("SELECT PID FROM "+tablename+" WHERE RUserID = " + user_one + ";")
      6     prods_one = cursor.fetchall()
      7     print prods_one

/Users/kelty/Desktop/Amazon-Review-Project/venv/lib/python2.7/site-packages/MySQLdb/cursors.pyc in execute(self, query, args)
    203             del tb
    204             self.messages.append((exc, value))
--> 205             self.errorhandler(self, exc, value)
    206         self._executed = query
    207         if not self._defer_warnings: self._warning_check()

/Users/kelty/Desktop/Amazon-Review-Project/venv/lib/python2.7/site-packages/MySQLdb/connections.pyc in defaulterrorhandler(***failed resolving arguments***)
     34     del cursor
     35     del connection
---> 36     raise errorclass, errorvalue
     37 
     38 re_numeric_part = re.compile(r"^(\d+)")

OperationalError: (1412, 'Table definition has changed, please retry transaction')

In [67]:
cursor.execute("SHOW TABLES;")


Out[67]:
5L

In [68]:
print cursor.fetchall()


(('500_reviews',), ('5_stars',), ('clean_data_ihope',), ('multiple_5_star_reviews',), ('reviews_2012_2013',))

In [63]:
sqlstring = 'Select PID  FROM 500_reviews WHERE RUserID = "AYGDKEVDCOHRJ";'

In [70]:
cursor.execute("SELECT * FROM 500_reviews;")


---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-70-fdf92d367154> in <module>()
----> 1 cursor.execute("SELECT * FROM 500_reviews;")

/Users/kelty/Desktop/Amazon-Review-Project/venv/lib/python2.7/site-packages/MySQLdb/cursors.pyc in execute(self, query, args)
    203             del tb
    204             self.messages.append((exc, value))
--> 205             self.errorhandler(self, exc, value)
    206         self._executed = query
    207         if not self._defer_warnings: self._warning_check()

/Users/kelty/Desktop/Amazon-Review-Project/venv/lib/python2.7/site-packages/MySQLdb/connections.pyc in defaulterrorhandler(***failed resolving arguments***)
     34     del cursor
     35     del connection
---> 36     raise errorclass, errorvalue
     37 
     38 re_numeric_part = re.compile(r"^(\d+)")

OperationalError: (1412, 'Table definition has changed, please retry transaction')

In [ ]: