In [1]:
import socket
This code runs on the 'driver' node
In [2]:
print( "Hello World from " + socket.gethostname() )
Hello World from yp-spark-dal09-env5-0033
Create some data and distribute on the cluster 'executor' nodes
In [3]:
rdd = spark.sparkContext.parallelize( range(0, 100) )
Run a function on the nodes and return the values back to the 'driver' node
In [4]:
rdd = rdd.map( lambda x: "Hello World from " + socket.gethostname() ).collect()
Print all the values
In [5]:
print( rdd )
['Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049', 'Hello World from yp-spark-dal09-env5-0049']
Print out the unique values
In [7]:
print( set(rdd) )
set(['Hello World from yp-spark-dal09-env5-0036', 'Hello World from yp-spark-dal09-env5-0049'])
Load the data
In [9]:
! rm -f ratings.dat
! wget https://raw.githubusercontent.com/snowch/movie-recommender-demo/master/web_app/data/ratings.dat
--2017-04-24 05:41:45-- https://raw.githubusercontent.com/snowch/movie-recommender-demo/master/web_app/data/ratings.dat
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.48.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.48.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8910990 (8.5M) [text/plain]
Saving to: ‘ratings.dat’
100%[======================================>] 8,910,990 54.5MB/s in 0.2s
2017-04-24 05:41:46 (54.5 MB/s) - ‘ratings.dat’ saved [8910990/8910990]
Inspect the data
In [10]:
! head -3 ratings.dat
! echo
! tail -3 ratings.dat
1::832::2::N/A
1::1781::1::N/A
1::1124::1::N/A
5999::1608::5::N/A
5999::982::4::N/A
5999::1350::3::N/A
Load the data in spark
In [11]:
from pyspark.mllib.recommendation import Rating
ratingsRDD = sc.textFile('ratings.dat') \
.map(lambda l: l.split("::")) \
.map(lambda p: Rating(
user = int(p[0]),
product = int(p[1]),
rating = float(p[2]),
)).cache()
In [15]:
from pyspark.mllib.recommendation import ALS
# set some values for the parameters
# these should be ascertained via experimentation
rank = 5
numIterations = 20
lambdaParam = 0.1
model = ALS.train(ratingsRDD.toDF(), rank, numIterations, lambdaParam)
Predict how the user=1 would rate product=1
In [14]:
model.predict(user=1, product=1)
Out[14]:
1.4271848394995756
Predict the top (1) recommendations for all users.
In [17]:
model.recommendProductsForUsers(1).toDF().collect()
Out[17]:
[Row(_1=1084, _2=Row(_1=Row(user=1084, product=1830, rating=1.7749724456713025))),
Row(_1=3456, _2=Row(_1=Row(user=3456, product=334, rating=1.6720514484427365))),
Row(_1=772, _2=Row(_1=Row(user=772, product=1891, rating=4.193756669050148))),
Row(_1=3764, _2=Row(_1=Row(user=3764, product=2280, rating=4.097255538860141))),
Row(_1=3272, _2=Row(_1=Row(user=3272, product=891, rating=4.14989990244117))),
Row(_1=752, _2=Row(_1=Row(user=752, product=891, rating=4.304143637696159))),
Row(_1=4352, _2=Row(_1=Row(user=4352, product=2249, rating=4.035544597239712))),
Row(_1=1724, _2=Row(_1=Row(user=1724, product=670, rating=4.299077560409296))),
Row(_1=428, _2=Row(_1=Row(user=428, product=2249, rating=4.194831649946838))),
Row(_1=1900, _2=Row(_1=Row(user=1900, product=2280, rating=4.293863012999837))),
Row(_1=1328, _2=Row(_1=Row(user=1328, product=2539, rating=4.117531728996765))),
Row(_1=464, _2=Row(_1=Row(user=464, product=550, rating=4.003281616169205))),
Row(_1=1040, _2=Row(_1=Row(user=1040, product=2357, rating=4.206752956861094))),
Row(_1=1336, _2=Row(_1=Row(user=1336, product=736, rating=4.334965708176296))),
Row(_1=4476, _2=Row(_1=Row(user=4476, product=670, rating=4.319121207516168))),
Row(_1=912, _2=Row(_1=Row(user=912, product=2337, rating=4.094588136311233))),
Row(_1=5384, _2=Row(_1=Row(user=5384, product=2179, rating=4.24163575293124))),
Row(_1=140, _2=Row(_1=Row(user=140, product=2539, rating=4.1816650177379655))),
Row(_1=204, _2=Row(_1=Row(user=204, product=239, rating=1.5578517277408943))),
Row(_1=956, _2=Row(_1=Row(user=956, product=875, rating=4.246248189485801))),
Row(_1=5460, _2=Row(_1=Row(user=5460, product=2539, rating=4.098188877888899))),
Row(_1=4780, _2=Row(_1=Row(user=4780, product=1395, rating=4.198056779975724))),
Row(_1=5928, _2=Row(_1=Row(user=5928, product=891, rating=4.159387819521408))),
Row(_1=4992, _2=Row(_1=Row(user=4992, product=2268, rating=3.965538697582048))),
Row(_1=1128, _2=Row(_1=Row(user=1128, product=2268, rating=4.190237728184373))),
Row(_1=2892, _2=Row(_1=Row(user=2892, product=891, rating=4.179343407682555))),
Row(_1=3436, _2=Row(_1=Row(user=3436, product=875, rating=4.156613432828021))),
Row(_1=5324, _2=Row(_1=Row(user=5324, product=550, rating=4.072604324548831))),
Row(_1=4260, _2=Row(_1=Row(user=4260, product=875, rating=4.132973518414097))),
Row(_1=228, _2=Row(_1=Row(user=228, product=891, rating=4.275654302720744))),
Row(_1=1416, _2=Row(_1=Row(user=1416, product=554, rating=4.235687552184971))),
Row(_1=4224, _2=Row(_1=Row(user=4224, product=2539, rating=3.996915661122155))),
Row(_1=192, _2=Row(_1=Row(user=192, product=2157, rating=4.465328033593912))),
Row(_1=492, _2=Row(_1=Row(user=492, product=891, rating=4.219839748461897))),
Row(_1=160, _2=Row(_1=Row(user=160, product=2157, rating=1.6654204213714257))),
Row(_1=5144, _2=Row(_1=Row(user=5144, product=1929, rating=4.251894122417222))),
Row(_1=1148, _2=Row(_1=Row(user=1148, product=334, rating=4.339757448068299))),
Row(_1=1168, _2=Row(_1=Row(user=1168, product=104, rating=4.262114333099088))),
Row(_1=1596, _2=Row(_1=Row(user=1596, product=2268, rating=4.281835633728815))),
Row(_1=1780, _2=Row(_1=Row(user=1780, product=2249, rating=3.8758096372902457))),
Row(_1=2716, _2=Row(_1=Row(user=2716, product=891, rating=4.226708415686554))),
Row(_1=1304, _2=Row(_1=Row(user=1304, product=1929, rating=4.429907189997735))),
Row(_1=5136, _2=Row(_1=Row(user=5136, product=891, rating=4.303946364818583))),
Row(_1=3192, _2=Row(_1=Row(user=3192, product=1395, rating=4.1140894317851595))),
Row(_1=992, _2=Row(_1=Row(user=992, product=1793, rating=4.094424771456099))),
Row(_1=2904, _2=Row(_1=Row(user=2904, product=891, rating=4.182740795885554))),
Row(_1=5832, _2=Row(_1=Row(user=5832, product=239, rating=1.5801051269971442))),
Row(_1=3240, _2=Row(_1=Row(user=3240, product=670, rating=4.277675826485055))),
Row(_1=4628, _2=Row(_1=Row(user=4628, product=550, rating=4.022909061955376))),
Row(_1=3336, _2=Row(_1=Row(user=3336, product=2249, rating=4.11749402162875))),
Row(_1=460, _2=Row(_1=Row(user=460, product=62, rating=4.212578035982272))),
Row(_1=2664, _2=Row(_1=Row(user=2664, product=670, rating=4.25533982856273))),
Row(_1=2608, _2=Row(_1=Row(user=2608, product=2249, rating=4.006352138726566))),
Row(_1=4724, _2=Row(_1=Row(user=4724, product=2337, rating=3.9524062455376834))),
Row(_1=3932, _2=Row(_1=Row(user=3932, product=2337, rating=1.611844607824953))),
Row(_1=1404, _2=Row(_1=Row(user=1404, product=550, rating=4.193000191862799))),
Row(_1=4876, _2=Row(_1=Row(user=4876, product=2539, rating=4.343752972908257))),
Row(_1=1732, _2=Row(_1=Row(user=1732, product=104, rating=1.6695425954075875))),
Row(_1=5796, _2=Row(_1=Row(user=5796, product=891, rating=4.1610152697439995))),
Row(_1=2092, _2=Row(_1=Row(user=2092, product=2157, rating=4.406814991170049))),
Row(_1=528, _2=Row(_1=Row(user=528, product=2157, rating=4.392234336397468))),
Row(_1=1632, _2=Row(_1=Row(user=1632, product=1793, rating=4.033835053894084))),
Row(_1=3032, _2=Row(_1=Row(user=3032, product=1793, rating=4.157023344841704))),
Row(_1=1716, _2=Row(_1=Row(user=1716, product=891, rating=4.148861782707468))),
Row(_1=1308, _2=Row(_1=Row(user=1308, product=2289, rating=4.225723618772514))),
Row(_1=1808, _2=Row(_1=Row(user=1808, product=670, rating=4.087304551747568))),
Row(_1=2712, _2=Row(_1=Row(user=2712, product=1929, rating=4.135968654808255))),
Row(_1=2912, _2=Row(_1=Row(user=2912, product=1929, rating=4.1013535756480834))),
Row(_1=5492, _2=Row(_1=Row(user=5492, product=2539, rating=4.099982797116411))),
Row(_1=944, _2=Row(_1=Row(user=944, product=550, rating=4.284348276142194))),
Row(_1=4828, _2=Row(_1=Row(user=4828, product=2539, rating=4.009781414419448))),
Row(_1=1280, _2=Row(_1=Row(user=1280, product=2357, rating=4.19168579455241))),
Row(_1=2052, _2=Row(_1=Row(user=2052, product=2539, rating=1.6389042425897642))),
Row(_1=2116, _2=Row(_1=Row(user=2116, product=2539, rating=3.9816927662837673))),
Row(_1=196, _2=Row(_1=Row(user=196, product=2539, rating=4.166517248119724))),
Row(_1=1816, _2=Row(_1=Row(user=1816, product=891, rating=4.062206386926427))),
Row(_1=3332, _2=Row(_1=Row(user=3332, product=1793, rating=4.000245750331949))),
Row(_1=2192, _2=Row(_1=Row(user=2192, product=2249, rating=4.157615757233981))),
Row(_1=5508, _2=Row(_1=Row(user=5508, product=891, rating=4.225375852347227))),
Row(_1=1104, _2=Row(_1=Row(user=1104, product=1120, rating=4.073447695614679))),
Row(_1=784, _2=Row(_1=Row(user=784, product=891, rating=4.379298105280926))),
Row(_1=2732, _2=Row(_1=Row(user=2732, product=670, rating=4.192875788145834))),
Row(_1=848, _2=Row(_1=Row(user=848, product=891, rating=4.22927226249049))),
Row(_1=1176, _2=Row(_1=Row(user=1176, product=2249, rating=4.230474197615997))),
Row(_1=3296, _2=Row(_1=Row(user=3296, product=1793, rating=4.196841255568091))),
Row(_1=1144, _2=Row(_1=Row(user=1144, product=1265, rating=4.2911331676478826))),
Row(_1=3568, _2=Row(_1=Row(user=3568, product=2337, rating=3.9702197640895305))),
Row(_1=4228, _2=Row(_1=Row(user=4228, product=1580, rating=4.222638068069875))),
Row(_1=5204, _2=Row(_1=Row(user=5204, product=1265, rating=4.4209072372763805))),
Row(_1=3896, _2=Row(_1=Row(user=3896, product=2249, rating=3.888751511051148))),
Row(_1=5736, _2=Row(_1=Row(user=5736, product=1929, rating=4.309677961336982))),
Row(_1=4156, _2=Row(_1=Row(user=4156, product=891, rating=4.20952298061202))),
Row(_1=5504, _2=Row(_1=Row(user=5504, product=2337, rating=4.164160770887233))),
Row(_1=292, _2=Row(_1=Row(user=292, product=104, rating=4.35193429673796))),
Row(_1=5676, _2=Row(_1=Row(user=5676, product=1891, rating=4.185762172368194))),
Row(_1=5632, _2=Row(_1=Row(user=5632, product=1929, rating=4.166240591221728))),
Row(_1=5648, _2=Row(_1=Row(user=5648, product=891, rating=4.271457323673488))),
Row(_1=1296, _2=Row(_1=Row(user=1296, product=2337, rating=4.076516551229481))),
Row(_1=5932, _2=Row(_1=Row(user=5932, product=891, rating=4.3930399741015345))),
Row(_1=4424, _2=Row(_1=Row(user=4424, product=891, rating=4.122659986555846))),
Row(_1=2180, _2=Row(_1=Row(user=2180, product=550, rating=4.047081190796398))),
Row(_1=4060, _2=Row(_1=Row(user=4060, product=2157, rating=1.7264673581366385))),
Row(_1=2164, _2=Row(_1=Row(user=2164, product=891, rating=4.201890211426611))),
Row(_1=344, _2=Row(_1=Row(user=344, product=550, rating=4.42361075347202))),
Row(_1=1320, _2=Row(_1=Row(user=1320, product=2179, rating=3.922920858816078))),
Row(_1=1344, _2=Row(_1=Row(user=1344, product=550, rating=4.3746400453135035))),
Row(_1=4008, _2=Row(_1=Row(user=4008, product=2337, rating=1.646458080293606))),
Row(_1=4656, _2=Row(_1=Row(user=4656, product=670, rating=4.191332640034715))),
Row(_1=5236, _2=Row(_1=Row(user=5236, product=550, rating=4.036219978783679))),
Row(_1=664, _2=Row(_1=Row(user=664, product=550, rating=4.075859225883858))),
Row(_1=252, _2=Row(_1=Row(user=252, product=891, rating=4.314450144166771))),
Row(_1=2604, _2=Row(_1=Row(user=2604, product=891, rating=4.470752649731134))),
Row(_1=2464, _2=Row(_1=Row(user=2464, product=2539, rating=1.6169887579430062))),
Row(_1=1020, _2=Row(_1=Row(user=1020, product=550, rating=4.204446842405496))),
Row(_1=5576, _2=Row(_1=Row(user=5576, product=104, rating=4.322532434043285))),
Row(_1=3500, _2=Row(_1=Row(user=3500, product=2539, rating=4.2116149741827975))),
Row(_1=2040, _2=Row(_1=Row(user=2040, product=550, rating=4.117603358678881))),
Row(_1=988, _2=Row(_1=Row(user=988, product=835, rating=4.217510678053413))),
Row(_1=2360, _2=Row(_1=Row(user=2360, product=2249, rating=4.211560669189325))),
Row(_1=5732, _2=Row(_1=Row(user=5732, product=2280, rating=4.22646893051921))),
Row(_1=4920, _2=Row(_1=Row(user=4920, product=2249, rating=4.0103457910437506))),
Row(_1=688, _2=Row(_1=Row(user=688, product=1265, rating=4.33567398085785))),
Row(_1=4632, _2=Row(_1=Row(user=4632, product=1220, rating=4.27857930571383))),
Row(_1=5636, _2=Row(_1=Row(user=5636, product=1037, rating=4.33061243307119))),
Row(_1=2600, _2=Row(_1=Row(user=2600, product=2599, rating=4.209048697170736))),
Row(_1=4864, _2=Row(_1=Row(user=4864, product=2599, rating=4.345135391254515))),
Row(_1=968, _2=Row(_1=Row(user=968, product=891, rating=4.16678266751253))),
Row(_1=2964, _2=Row(_1=Row(user=2964, product=1793, rating=4.366352161485546))),
Row(_1=5288, _2=Row(_1=Row(user=5288, product=550, rating=4.221542779714061))),
Row(_1=592, _2=Row(_1=Row(user=592, product=2249, rating=4.002013647455689))),
Row(_1=1468, _2=Row(_1=Row(user=1468, product=1793, rating=3.989747658446447))),
Row(_1=1940, _2=Row(_1=Row(user=1940, product=2539, rating=4.076087690173269))),
Row(_1=836, _2=Row(_1=Row(user=836, product=891, rating=4.263330024065888))),
Row(_1=5604, _2=Row(_1=Row(user=5604, product=2179, rating=4.061888708318123))),
Row(_1=3848, _2=Row(_1=Row(user=3848, product=2179, rating=4.04548387175442))),
Row(_1=1556, _2=Row(_1=Row(user=1556, product=1793, rating=4.153327578602502))),
Row(_1=2924, _2=Row(_1=Row(user=2924, product=2539, rating=4.033263335521218))),
Row(_1=1800, _2=Row(_1=Row(user=1800, product=2157, rating=4.452520391141346))),
Row(_1=3740, _2=Row(_1=Row(user=3740, product=104, rating=1.6291681466522663))),
Row(_1=1932, _2=Row(_1=Row(user=1932, product=891, rating=4.283445252118878))),
Row(_1=2744, _2=Row(_1=Row(user=2744, product=104, rating=4.456055781590842))),
Row(_1=1656, _2=Row(_1=Row(user=1656, product=334, rating=1.5847499128338631))),
Row(_1=3484, _2=Row(_1=Row(user=3484, product=891, rating=4.384795529032839))),
Row(_1=5788, _2=Row(_1=Row(user=5788, product=2289, rating=4.268593065057565))),
Row(_1=3284, _2=Row(_1=Row(user=3284, product=2337, rating=4.234673380730522))),
Row(_1=740, _2=Row(_1=Row(user=740, product=2539, rating=4.310033563935515))),
Row(_1=208, _2=Row(_1=Row(user=208, product=2357, rating=4.159067258374157))),
Row(_1=436, _2=Row(_1=Row(user=436, product=2157, rating=1.688631270227159))),
Row(_1=2808, _2=Row(_1=Row(user=2808, product=2157, rating=1.6546440611073852))),
Row(_1=3700, _2=Row(_1=Row(user=3700, product=736, rating=4.198107693393444))),
Row(_1=3516, _2=Row(_1=Row(user=3516, product=1929, rating=4.24814219369749))),
Row(_1=3600, _2=Row(_1=Row(user=3600, product=670, rating=4.163741489964747))),
Row(_1=1968, _2=Row(_1=Row(user=1968, product=550, rating=4.1683172603616665))),
Row(_1=804, _2=Row(_1=Row(user=804, product=891, rating=4.277932836647928))),
Row(_1=5004, _2=Row(_1=Row(user=5004, product=2539, rating=4.151052283130296))),
Row(_1=2792, _2=Row(_1=Row(user=2792, product=891, rating=4.2724663757143775))),
Row(_1=4028, _2=Row(_1=Row(user=4028, product=891, rating=4.280213696157326))),
Row(_1=5688, _2=Row(_1=Row(user=5688, product=2157, rating=4.489669954362075))),
Row(_1=3520, _2=Row(_1=Row(user=3520, product=891, rating=4.381120906388474))),
Row(_1=3000, _2=Row(_1=Row(user=3000, product=2337, rating=4.319353874881222))),
Row(_1=1172, _2=Row(_1=Row(user=1172, product=2599, rating=4.1379493528194))),
Row(_1=3616, _2=Row(_1=Row(user=3616, product=2280, rating=4.161088617298903))),
Row(_1=3128, _2=Row(_1=Row(user=3128, product=670, rating=4.283895815292695))),
Row(_1=2588, _2=Row(_1=Row(user=2588, product=2289, rating=4.213545012736185))),
Row(_1=1044, _2=Row(_1=Row(user=1044, product=891, rating=4.205591367700609))),
Row(_1=4452, _2=Row(_1=Row(user=4452, product=2337, rating=4.3661065410548))),
Row(_1=2648, _2=Row(_1=Row(user=2648, product=2599, rating=4.248507385218467))),
Row(_1=536, _2=Row(_1=Row(user=536, product=875, rating=4.175558046160466))),
Row(_1=1100, _2=Row(_1=Row(user=1100, product=891, rating=4.44028772771046))),
Row(_1=3364, _2=Row(_1=Row(user=3364, product=550, rating=4.413935485845334))),
Row(_1=5124, _2=Row(_1=Row(user=5124, product=2280, rating=4.171906293852483))),
Row(_1=3880, _2=Row(_1=Row(user=3880, product=670, rating=4.165435380496673))),
Row(_1=5420, _2=Row(_1=Row(user=5420, product=239, rating=1.5019125222316936))),
Row(_1=2488, _2=Row(_1=Row(user=2488, product=2249, rating=4.147229206322019))),
Row(_1=4, _2=Row(_1=Row(user=4, product=2157, rating=4.464219904716358))),
Row(_1=3488, _2=Row(_1=Row(user=3488, product=550, rating=4.15290589361753))),
Row(_1=2844, _2=Row(_1=Row(user=2844, product=550, rating=4.356251550829178))),
Row(_1=3180, _2=Row(_1=Row(user=3180, product=2249, rating=4.153838740932081))),
Row(_1=5156, _2=Row(_1=Row(user=5156, product=1793, rating=4.249920121158118))),
Row(_1=4108, _2=Row(_1=Row(user=4108, product=736, rating=4.245740457594701))),
Row(_1=2976, _2=Row(_1=Row(user=2976, product=550, rating=4.452852840951051))),
Row(_1=5708, _2=Row(_1=Row(user=5708, product=891, rating=4.646556533286155))),
Row(_1=3980, _2=Row(_1=Row(user=3980, product=1220, rating=1.7555947123254758))),
Row(_1=672, _2=Row(_1=Row(user=672, product=2157, rating=4.533977288891121))),
Row(_1=4940, _2=Row(_1=Row(user=4940, product=550, rating=4.246160427063154))),
Row(_1=2248, _2=Row(_1=Row(user=2248, product=1891, rating=4.152183233858805))),
Row(_1=1540, _2=Row(_1=Row(user=1540, product=1265, rating=1.6575534055698036))),
Row(_1=1680, _2=Row(_1=Row(user=1680, product=1580, rating=4.5583228925899455))),
Row(_1=3060, _2=Row(_1=Row(user=3060, product=891, rating=4.143348213841366))),
Row(_1=4796, _2=Row(_1=Row(user=4796, product=104, rating=1.5991246995227493))),
Row(_1=5844, _2=Row(_1=Row(user=5844, product=1580, rating=1.6948061650590103))),
Row(_1=152, _2=Row(_1=Row(user=152, product=736, rating=4.293685683045645))),
Row(_1=368, _2=Row(_1=Row(user=368, product=2357, rating=4.252315653441527))),
Row(_1=2668, _2=Row(_1=Row(user=2668, product=2179, rating=4.073914687225756))),
Row(_1=796, _2=Row(_1=Row(user=796, product=2539, rating=4.265182129636415))),
Row(_1=4588, _2=Row(_1=Row(user=4588, product=1793, rating=4.081504955494246))),
Row(_1=4344, _2=Row(_1=Row(user=4344, product=1793, rating=4.288648930358487))),
Row(_1=236, _2=Row(_1=Row(user=236, product=2539, rating=4.095874095178868))),
Row(_1=316, _2=Row(_1=Row(user=316, product=104, rating=1.6687510660595395))),
Row(_1=2544, _2=Row(_1=Row(user=2544, product=835, rating=4.219688795205335))),
Row(_1=2980, _2=Row(_1=Row(user=2980, product=736, rating=4.151436808269639))),
Row(_1=3140, _2=Row(_1=Row(user=3140, product=2249, rating=3.9521290634167903))),
Row(_1=3304, _2=Row(_1=Row(user=3304, product=2157, rating=1.6285476131248395))),
Row(_1=400, _2=Row(_1=Row(user=400, product=1159, rating=4.149943322627026))),
Row(_1=612, _2=Row(_1=Row(user=612, product=2249, rating=4.101434307325704))),
Row(_1=888, _2=Row(_1=Row(user=888, product=2249, rating=4.03122852700182))),
Row(_1=2364, _2=Row(_1=Row(user=2364, product=2539, rating=4.267951782599893))),
Row(_1=3792, _2=Row(_1=Row(user=3792, product=1120, rating=4.217118488332019))),
Row(_1=764, _2=Row(_1=Row(user=764, product=2157, rating=4.5402937508198455))),
Row(_1=2020, _2=Row(_1=Row(user=2020, product=2179, rating=4.1192752646449495))),
Row(_1=224, _2=Row(_1=Row(user=224, product=2337, rating=4.272545297588054))),
Row(_1=2368, _2=Row(_1=Row(user=2368, product=891, rating=4.1746150886605005))),
Row(_1=1200, _2=Row(_1=Row(user=1200, product=2280, rating=4.127621956748596))),
Row(_1=2200, _2=Row(_1=Row(user=2200, product=891, rating=4.3441639827195155))),
Row(_1=2724, _2=Row(_1=Row(user=2724, product=2357, rating=4.116571167993793))),
Row(_1=3164, _2=Row(_1=Row(user=3164, product=1891, rating=4.288023510117155))),
Row(_1=4016, _2=Row(_1=Row(user=4016, product=2289, rating=4.073783785927448))),
Row(_1=4396, _2=Row(_1=Row(user=4396, product=891, rating=4.315590261606098))),
Row(_1=120, _2=Row(_1=Row(user=120, product=2393, rating=4.07631187459417))),
Row(_1=4608, _2=Row(_1=Row(user=4608, product=1793, rating=4.11404814059689))),
Row(_1=4736, _2=Row(_1=Row(user=4736, product=670, rating=4.00654546382917))),
Row(_1=5184, _2=Row(_1=Row(user=5184, product=2539, rating=4.390809657701915))),
Row(_1=1356, _2=Row(_1=Row(user=1356, product=891, rating=4.123112571829307))),
Row(_1=5484, _2=Row(_1=Row(user=5484, product=2599, rating=4.205515334428403))),
Row(_1=2352, _2=Row(_1=Row(user=2352, product=670, rating=4.199509135424812))),
Row(_1=1916, _2=Row(_1=Row(user=1916, product=2157, rating=4.462681560667101))),
Row(_1=4672, _2=Row(_1=Row(user=4672, product=104, rating=1.6463682795736814))),
Row(_1=3328, _2=Row(_1=Row(user=3328, product=891, rating=4.105679904453975))),
Row(_1=5964, _2=Row(_1=Row(user=5964, product=2268, rating=4.25532398562527))),
Row(_1=5908, _2=Row(_1=Row(user=5908, product=670, rating=4.059182505305179))),
Row(_1=2332, _2=Row(_1=Row(user=2332, product=2539, rating=1.59717572615392))),
Row(_1=2700, _2=Row(_1=Row(user=2700, product=104, rating=1.7027099620599033))),
Row(_1=572, _2=Row(_1=Row(user=572, product=550, rating=4.402346470271086))),
Row(_1=3620, _2=Row(_1=Row(user=3620, product=2337, rating=4.358747495654031))),
Row(_1=2068, _2=Row(_1=Row(user=2068, product=104, rating=1.7285159133538541))),
Row(_1=5248, _2=Row(_1=Row(user=5248, product=1265, rating=1.6648758310839789))),
Row(_1=1688, _2=Row(_1=Row(user=1688, product=891, rating=4.157314946849812))),
Row(_1=2004, _2=Row(_1=Row(user=2004, product=2179, rating=4.138550821704944))),
Row(_1=1548, _2=Row(_1=Row(user=1548, product=891, rating=3.961066539405035))),
Row(_1=3064, _2=Row(_1=Row(user=3064, product=891, rating=4.077981997792495))),
Row(_1=1472, _2=Row(_1=Row(user=1472, product=2357, rating=4.102666441470754))),
Row(_1=3280, _2=Row(_1=Row(user=3280, product=1793, rating=4.276362459359817))),
Row(_1=5028, _2=Row(_1=Row(user=5028, product=2571, rating=1.587363738608165))),
Row(_1=304, _2=Row(_1=Row(user=304, product=550, rating=3.932265358375303))),
Row(_1=5016, _2=Row(_1=Row(user=5016, product=670, rating=4.3112273514947095))),
Row(_1=1624, _2=Row(_1=Row(user=1624, product=736, rating=4.19487019513135))),
Row(_1=1228, _2=Row(_1=Row(user=1228, product=2268, rating=3.9083294451362187))),
Row(_1=2992, _2=Row(_1=Row(user=2992, product=550, rating=4.13455511850906))),
Row(_1=496, _2=Row(_1=Row(user=496, product=2179, rating=4.329402067320169))),
Row(_1=4180, _2=Row(_1=Row(user=4180, product=1929, rating=4.274569482974934))),
Row(_1=3096, _2=Row(_1=Row(user=3096, product=736, rating=4.197284340040816))),
Row(_1=5472, _2=Row(_1=Row(user=5472, product=891, rating=4.139334010380238))),
Row(_1=3548, _2=Row(_1=Row(user=3548, product=891, rating=4.1531910951709445))),
Row(_1=1132, _2=Row(_1=Row(user=1132, product=891, rating=4.099323097902229))),
Row(_1=360, _2=Row(_1=Row(user=360, product=736, rating=4.138084878837821))),
Row(_1=312, _2=Row(_1=Row(user=312, product=1793, rating=4.178811472979373))),
Row(_1=1792, _2=Row(_1=Row(user=1792, product=891, rating=4.165029868968765))),
Row(_1=1532, _2=Row(_1=Row(user=1532, product=2289, rating=4.087186491764357))),
Row(_1=4772, _2=Row(_1=Row(user=4772, product=891, rating=4.186866956124846))),
Row(_1=52, _2=Row(_1=Row(user=52, product=670, rating=4.22240903303167))),
Row(_1=5872, _2=Row(_1=Row(user=5872, product=2157, rating=1.6583040569363683))),
Row(_1=1888, _2=Row(_1=Row(user=1888, product=1793, rating=4.241109128162897))),
Row(_1=936, _2=Row(_1=Row(user=936, product=1365, rating=1.588644264044368))),
Row(_1=2928, _2=Row(_1=Row(user=2928, product=670, rating=4.031716863782767))),
Row(_1=2564, _2=Row(_1=Row(user=2564, product=1120, rating=4.226620827622029))),
Row(_1=1608, _2=Row(_1=Row(user=1608, product=670, rating=4.032938622116879))),
Row(_1=5056, _2=Row(_1=Row(user=5056, product=2539, rating=1.6244808929466694))),
Row(_1=2012, _2=Row(_1=Row(user=2012, product=891, rating=4.272776100696547))),
Row(_1=2132, _2=Row(_1=Row(user=2132, product=2337, rating=4.228950768721036))),
Row(_1=720, _2=Row(_1=Row(user=720, product=1580, rating=4.273737951106627))),
Row(_1=456, _2=Row(_1=Row(user=456, product=736, rating=4.313097060423674))),
Row(_1=5252, _2=Row(_1=Row(user=5252, product=891, rating=4.404278289722095))),
Row(_1=3912, _2=Row(_1=Row(user=3912, product=891, rating=4.197334290249456))),
Row(_1=4092, _2=Row(_1=Row(user=4092, product=891, rating=4.183636872749137))),
Row(_1=2824, _2=Row(_1=Row(user=2824, product=891, rating=4.102470713849856))),
Row(_1=5988, _2=Row(_1=Row(user=5988, product=1793, rating=4.179521780517166))),
Row(_1=1136, _2=Row(_1=Row(user=1136, product=891, rating=4.1938381209798035))),
Row(_1=64, _2=Row(_1=Row(user=64, product=2157, rating=4.374229572645412))),
Row(_1=1492, _2=Row(_1=Row(user=1492, product=550, rating=4.107818459549905))),
Row(_1=1488, _2=Row(_1=Row(user=1488, product=891, rating=4.11875359625768))),
Row(_1=3020, _2=Row(_1=Row(user=3020, product=670, rating=4.245183310803442))),
Row(_1=3388, _2=Row(_1=Row(user=3388, product=2337, rating=4.214927759423668))),
Row(_1=1884, _2=Row(_1=Row(user=1884, product=104, rating=4.388007063591921))),
Row(_1=4900, _2=Row(_1=Row(user=4900, product=2289, rating=4.22760608389337))),
Row(_1=2236, _2=Row(_1=Row(user=2236, product=891, rating=3.909934697856947))),
Row(_1=5112, _2=Row(_1=Row(user=5112, product=1929, rating=4.227270240456104))),
Row(_1=2988, _2=Row(_1=Row(user=2988, product=891, rating=4.409801905911599))),
Row(_1=4220, _2=Row(_1=Row(user=4220, product=1891, rating=4.251242385847756))),
Row(_1=1728, _2=Row(_1=Row(user=1728, product=891, rating=4.153969404622451))),
Row(_1=432, _2=Row(_1=Row(user=432, product=1929, rating=4.2777616527680316))),
Row(_1=508, _2=Row(_1=Row(user=508, product=239, rating=1.674396671407993))),
Row(_1=640, _2=Row(_1=Row(user=640, product=1793, rating=4.1499706049992815))),
Row(_1=2136, _2=Row(_1=Row(user=2136, product=2249, rating=4.09256230347501))),
Row(_1=2876, _2=Row(_1=Row(user=2876, product=2268, rating=4.179893132208104))),
Row(_1=5300, _2=Row(_1=Row(user=5300, product=550, rating=4.137104312467688))),
Row(_1=5064, _2=Row(_1=Row(user=5064, product=891, rating=4.270892821000638))),
Row(_1=5428, _2=Row(_1=Row(user=5428, product=2249, rating=4.203801403612671))),
Row(_1=4020, _2=Row(_1=Row(user=4020, product=2357, rating=4.337480539933735))),
Row(_1=1516, _2=Row(_1=Row(user=1516, product=2357, rating=4.244391655267039))),
Row(_1=2720, _2=Row(_1=Row(user=2720, product=1395, rating=4.258864152990452))),
Row(_1=3724, _2=Row(_1=Row(user=3724, product=2179, rating=4.053281246123216))),
Row(_1=5084, _2=Row(_1=Row(user=5084, product=670, rating=4.269823846811681))),
Row(_1=5876, _2=Row(_1=Row(user=5876, product=891, rating=3.9997543831813114))),
Row(_1=4568, _2=Row(_1=Row(user=4568, product=550, rating=4.059271700228874))),
Row(_1=2324, _2=Row(_1=Row(user=2324, product=2280, rating=4.154983073702749))),
Row(_1=4236, _2=Row(_1=Row(user=4236, product=600, rating=4.345885709895894))),
Row(_1=2528, _2=Row(_1=Row(user=2528, product=2249, rating=3.7974382554920796))),
Row(_1=4328, _2=Row(_1=Row(user=4328, product=891, rating=4.367432001211489))),
Row(_1=4856, _2=Row(_1=Row(user=4856, product=891, rating=4.146328185125962))),
Row(_1=5176, _2=Row(_1=Row(user=5176, product=891, rating=4.110614015065314))),
Row(_1=2612, _2=Row(_1=Row(user=2612, product=2357, rating=4.100672465389975))),
Row(_1=116, _2=Row(_1=Row(user=116, product=2539, rating=4.226450479963399))),
Row(_1=4480, _2=Row(_1=Row(user=4480, product=2539, rating=4.038869297412065))),
Row(_1=1708, _2=Row(_1=Row(user=1708, product=736, rating=4.116689590785866))),
Row(_1=1004, _2=Row(_1=Row(user=1004, product=1265, rating=4.489088480780119))),
Row(_1=5772, _2=Row(_1=Row(user=5772, product=969, rating=4.349705461356855))),
Row(_1=5260, _2=Row(_1=Row(user=5260, product=490, rating=4.19135257240472))),
Row(_1=2868, _2=Row(_1=Row(user=2868, product=891, rating=4.2394612192036325))),
Row(_1=1992, _2=Row(_1=Row(user=1992, product=2268, rating=4.216213484266746))),
Row(_1=3080, _2=Row(_1=Row(user=3080, product=239, rating=4.354284431416072))),
Row(_1=2880, _2=Row(_1=Row(user=2880, product=891, rating=4.026619715744045))),
Row(_1=5952, _2=Row(_1=Row(user=5952, product=2289, rating=4.262618621493023))),
Row(_1=5148, _2=Row(_1=Row(user=5148, product=2539, rating=4.122272832770425))),
Row(_1=2752, _2=Row(_1=Row(user=2752, product=550, rating=4.007970597012559))),
Row(_1=1620, _2=Row(_1=Row(user=1620, product=2123, rating=4.072803608343174))),
Row(_1=3624, _2=Row(_1=Row(user=3624, product=2539, rating=4.334801708871874))),
Row(_1=4712, _2=Row(_1=Row(user=4712, product=2539, rating=4.140348743559754))),
Row(_1=5168, _2=Row(_1=Row(user=5168, product=104, rating=4.316085415441724))),
Row(_1=3856, _2=Row(_1=Row(user=3856, product=2289, rating=4.088421583769481))),
Row(_1=488, _2=Row(_1=Row(user=488, product=1891, rating=4.234588884580015))),
Row(_1=2288, _2=Row(_1=Row(user=2288, product=568, rating=4.133898764395461))),
Row(_1=1720, _2=Row(_1=Row(user=1720, product=2289, rating=4.1230730715007375))),
Row(_1=5444, _2=Row(_1=Row(user=5444, product=2280, rating=4.098240245643405))),
Row(_1=1248, _2=Row(_1=Row(user=1248, product=891, rating=4.144666911126018))),
Row(_1=656, _2=Row(_1=Row(user=656, product=891, rating=4.1565742343704635))),
Row(_1=4276, _2=Row(_1=Row(user=4276, product=2539, rating=4.071505691247167))),
Row(_1=3524, _2=Row(_1=Row(user=3524, product=2157, rating=4.3907545224467786))),
Row(_1=4540, _2=Row(_1=Row(user=4540, product=550, rating=4.291189421383532))),
Row(_1=692, _2=Row(_1=Row(user=692, product=2539, rating=4.014012850656))),
Row(_1=5812, _2=Row(_1=Row(user=5812, product=1395, rating=4.296900966214107))),
Row(_1=5620, _2=Row(_1=Row(user=5620, product=334, rating=4.2740425803897315))),
Row(_1=4848, _2=Row(_1=Row(user=4848, product=2357, rating=4.099146789843996))),
Row(_1=3220, _2=Row(_1=Row(user=3220, product=2179, rating=4.065670164902295))),
Row(_1=2412, _2=Row(_1=Row(user=2412, product=2539, rating=1.6646309131871604))),
Row(_1=744, _2=Row(_1=Row(user=744, product=891, rating=4.354228243513098))),
Row(_1=1496, _2=Row(_1=Row(user=1496, product=1127, rating=1.5751599274824006))),
Row(_1=5940, _2=Row(_1=Row(user=5940, product=1929, rating=4.098287161025329))),
Row(_1=3468, _2=Row(_1=Row(user=3468, product=600, rating=4.295126564425333))),
Row(_1=5448, _2=Row(_1=Row(user=5448, product=2539, rating=1.6939800658983648))),
Row(_1=480, _2=Row(_1=Row(user=480, product=600, rating=1.6360572954739407))),
Row(_1=1740, _2=Row(_1=Row(user=1740, product=239, rating=4.578680785357814))),
Row(_1=4288, _2=Row(_1=Row(user=4288, product=104, rating=1.6602294327205256))),
Row(_1=3124, _2=Row(_1=Row(user=3124, product=1396, rating=4.179460948900626))),
Row(_1=4432, _2=Row(_1=Row(user=4432, product=600, rating=4.2680633280592115))),
Row(_1=1528, _2=Row(_1=Row(user=1528, product=2599, rating=4.1719647517771765))),
Row(_1=1268, _2=Row(_1=Row(user=1268, product=334, rating=4.350055609542371))),
Row(_1=3860, _2=Row(_1=Row(user=3860, product=2249, rating=4.075827603463987))),
Row(_1=212, _2=Row(_1=Row(user=212, product=1200, rating=4.035767113727834))),
Row(_1=2160, _2=Row(_1=Row(user=2160, product=2179, rating=4.124135275829574))),
Row(_1=288, _2=Row(_1=Row(user=288, product=891, rating=4.212348544784424))),
Row(_1=3836, _2=Row(_1=Row(user=3836, product=670, rating=3.978429570801747))),
Row(_1=4324, _2=Row(_1=Row(user=4324, product=2157, rating=1.5179389941673067))),
Row(_1=3416, _2=Row(_1=Row(user=3416, product=2539, rating=4.121878113874373))),
Row(_1=1220, _2=Row(_1=Row(user=1220, product=1891, rating=4.21057455985453))),
Row(_1=5140, _2=Row(_1=Row(user=5140, product=1929, rating=4.258674616956309))),
Row(_1=2220, _2=Row(_1=Row(user=2220, product=891, rating=3.999202873974203))),
Row(_1=2948, _2=Row(_1=Row(user=2948, product=2289, rating=4.356389538261566))),
Row(_1=5404, _2=Row(_1=Row(user=5404, product=1793, rating=3.972617378017336))),
Row(_1=100, _2=Row(_1=Row(user=100, product=1929, rating=4.1641985037218054))),
Row(_1=2000, _2=Row(_1=Row(user=2000, product=891, rating=4.159085994390738))),
Row(_1=332, _2=Row(_1=Row(user=332, product=550, rating=4.38305928718372))),
Row(_1=3572, _2=Row(_1=Row(user=3572, product=239, rating=1.7502084521269636))),
Row(_1=676, _2=Row(_1=Row(user=676, product=1580, rating=1.5396383362394466))),
Row(_1=5916, _2=Row(_1=Row(user=5916, product=2337, rating=4.240037576357947))),
Row(_1=1092, _2=Row(_1=Row(user=1092, product=891, rating=4.35481589948763))),
Row(_1=5200, _2=Row(_1=Row(user=5200, product=1037, rating=1.5720674645656572))),
Row(_1=300, _2=Row(_1=Row(user=300, product=670, rating=4.102270448592938))),
Row(_1=2852, _2=Row(_1=Row(user=2852, product=1265, rating=1.55028438133497))),
Row(_1=5728, _2=Row(_1=Row(user=5728, product=2280, rating=4.212787357186844))),
Row(_1=3400, _2=Row(_1=Row(user=3400, product=2280, rating=4.17687670206912))),
Row(_1=2696, _2=Row(_1=Row(user=2696, product=2280, rating=3.9895369149948445))),
Row(_1=3496, _2=Row(_1=Row(user=3496, product=2280, rating=3.966931493037523))),
Row(_1=1988, _2=Row(_1=Row(user=1988, product=670, rating=4.394747965130678))),
Row(_1=4944, _2=Row(_1=Row(user=4944, product=670, rating=4.274059748548861))),
Row(_1=3644, _2=Row(_1=Row(user=3644, product=670, rating=4.165843922121806))),
Row(_1=5512, _2=Row(_1=Row(user=5512, product=891, rating=4.183382762766059))),
Row(_1=3540, _2=Row(_1=Row(user=3540, product=550, rating=4.057499564699457))),
Row(_1=812, _2=Row(_1=Row(user=812, product=2157, rating=1.648943590509624))),
Row(_1=1408, _2=Row(_1=Row(user=1408, product=550, rating=4.172415046361683))),
Row(_1=3360, _2=Row(_1=Row(user=3360, product=550, rating=4.139583214997284))),
Row(_1=532, _2=Row(_1=Row(user=532, product=891, rating=4.214428616147659))),
Row(_1=1600, _2=Row(_1=Row(user=1600, product=104, rating=1.568590395932215))),
Row(_1=2672, _2=Row(_1=Row(user=2672, product=2157, rating=4.400892996221571))),
Row(_1=4144, _2=Row(_1=Row(user=4144, product=2280, rating=4.188756367199936))),
Row(_1=4120, _2=Row(_1=Row(user=4120, product=1929, rating=4.340194304782413))),
Row(_1=4764, _2=Row(_1=Row(user=4764, product=1793, rating=4.245468441650377))),
Row(_1=4896, _2=Row(_1=Row(user=4896, product=891, rating=4.123233334091767))),
Row(_1=5228, _2=Row(_1=Row(user=5228, product=2280, rating=4.11265624792377))),
Row(_1=1824, _2=Row(_1=Row(user=1824, product=2337, rating=1.7471235330870476))),
Row(_1=1196, _2=Row(_1=Row(user=1196, product=1891, rating=4.100742678112383))),
Row(_1=5100, _2=Row(_1=Row(user=5100, product=239, rating=1.6280264483287616))),
Row(_1=4524, _2=Row(_1=Row(user=4524, product=891, rating=4.135031465316035))),
Row(_1=5860, _2=Row(_1=Row(user=5860, product=239, rating=4.768885582358595))),
Row(_1=2156, _2=Row(_1=Row(user=2156, product=891, rating=4.385208368109934))),
Row(_1=3168, _2=Row(_1=Row(user=3168, product=104, rating=1.7174246847675003))),
Row(_1=5456, _2=Row(_1=Row(user=5456, product=239, rating=1.6716986626674704))),
Row(_1=1216, _2=Row(_1=Row(user=1216, product=2539, rating=1.5927308463142693))),
Row(_1=2100, _2=Row(_1=Row(user=2100, product=736, rating=4.090167227676718))),
Row(_1=2688, _2=Row(_1=Row(user=2688, product=2280, rating=4.315525047450519))),
Row(_1=5152, _2=Row(_1=Row(user=5152, product=2280, rating=4.2561032866688215))),
Row(_1=5884, _2=Row(_1=Row(user=5884, product=891, rating=4.21776274524574))),
Row(_1=2916, _2=Row(_1=Row(user=2916, product=334, rating=4.132468464548673))),
Row(_1=5468, _2=Row(_1=Row(user=5468, product=2192, rating=4.509984197773257))),
Row(_1=1012, _2=Row(_1=Row(user=1012, product=2289, rating=4.29693069700494))),
Row(_1=1768, _2=Row(_1=Row(user=1768, product=2539, rating=4.423310017456128))),
Row(_1=4356, _2=Row(_1=Row(user=4356, product=550, rating=4.315284384896383))),
Row(_1=4400, _2=Row(_1=Row(user=4400, product=2539, rating=4.0821907496584515))),
Row(_1=476, _2=Row(_1=Row(user=476, product=2539, rating=4.154822251096055))),
Row(_1=3148, _2=Row(_1=Row(user=3148, product=2337, rating=4.251425652298925))),
Row(_1=3976, _2=Row(_1=Row(user=3976, product=2357, rating=4.059013492932211))),
Row(_1=28, _2=Row(_1=Row(user=28, product=1891, rating=4.250865085887104))),
Row(_1=4248, _2=Row(_1=Row(user=4248, product=2179, rating=4.2503420227852144))),
Row(_1=2308, _2=Row(_1=Row(user=2308, product=550, rating=4.101638930426592))),
Row(_1=4832, _2=Row(_1=Row(user=4832, product=891, rating=4.197902385467096))),
Row(_1=5960, _2=Row(_1=Row(user=5960, product=2280, rating=4.37755665456686))),
Row(_1=2312, _2=Row(_1=Row(user=2312, product=2268, rating=4.155178554997873))),
Row(_1=3992, _2=Row(_1=Row(user=3992, product=891, rating=4.04780340631606))),
Row(_1=5984, _2=Row(_1=Row(user=5984, product=2357, rating=4.117964794293744))),
Row(_1=5080, _2=Row(_1=Row(user=5080, product=2179, rating=4.0358249751387))),
Row(_1=5432, _2=Row(_1=Row(user=5432, product=2280, rating=4.1511367872021445))),
Row(_1=5524, _2=Row(_1=Row(user=5524, product=670, rating=4.209742681441536))),
Row(_1=896, _2=Row(_1=Row(user=896, product=670, rating=4.202082511749819))),
Row(_1=1400, _2=Row(_1=Row(user=1400, product=2268, rating=4.100605890271705))),
Row(_1=4136, _2=Row(_1=Row(user=4136, product=550, rating=4.126818126909305))),
Row(_1=5972, _2=Row(_1=Row(user=5972, product=891, rating=4.190846071081182))),
Row(_1=2508, _2=Row(_1=Row(user=2508, product=891, rating=4.315599727654364))),
Row(_1=4100, _2=Row(_1=Row(user=4100, product=2157, rating=1.7899465526408693))),
Row(_1=2820, _2=Row(_1=Row(user=2820, product=1793, rating=4.077179879142857))),
Row(_1=824, _2=Row(_1=Row(user=824, product=239, rating=4.302933401022504))),
Row(_1=760, _2=Row(_1=Row(user=760, product=891, rating=4.210749793960109))),
Row(_1=1232, _2=Row(_1=Row(user=1232, product=104, rating=4.481235092336588))),
Row(_1=5120, _2=Row(_1=Row(user=5120, product=2, rating=1.6884477808511995))),
Row(_1=56, _2=Row(_1=Row(user=56, product=2179, rating=4.287474135412782))),
Row(_1=3796, _2=Row(_1=Row(user=3796, product=891, rating=4.474261493377632))),
Row(_1=920, _2=Row(_1=Row(user=920, product=2, rating=1.6704887260580035))),
Row(_1=5336, _2=Row(_1=Row(user=5336, product=1891, rating=4.269370464026382))),
Row(_1=1484, _2=Row(_1=Row(user=1484, product=891, rating=4.151398147099352))),
Row(_1=2008, _2=Row(_1=Row(user=2008, product=670, rating=4.307584539320475))),
Row(_1=5352, _2=Row(_1=Row(user=5352, product=239, rating=4.5069291086697225))),
Row(_1=5544, _2=Row(_1=Row(user=5544, product=891, rating=4.18856094636435))),
Row(_1=1252, _2=Row(_1=Row(user=1252, product=891, rating=4.2655227232624195))),
Row(_1=2416, _2=Row(_1=Row(user=2416, product=1365, rating=4.322642928167651))),
Row(_1=1116, _2=Row(_1=Row(user=1116, product=891, rating=4.343784409321406))),
Row(_1=3088, _2=Row(_1=Row(user=3088, product=2157, rating=4.2148689761444045))),
Row(_1=3132, _2=Row(_1=Row(user=3132, product=2357, rating=4.265594862333973))),
Row(_1=1288, _2=Row(_1=Row(user=1288, product=334, rating=4.513906532937979))),
Row(_1=3904, _2=Row(_1=Row(user=3904, product=1793, rating=4.2144523282628965))),
Row(_1=1660, _2=Row(_1=Row(user=1660, product=2280, rating=4.2740784874253315))),
Row(_1=4740, _2=Row(_1=Row(user=4740, product=2192, rating=1.6578662484035134))),
Row(_1=3172, _2=Row(_1=Row(user=3172, product=2249, rating=4.259792391422552))),
Row(_1=4048, _2=Row(_1=Row(user=4048, product=891, rating=4.266893402417956))),
Row(_1=1024, _2=Row(_1=Row(user=1024, product=104, rating=4.378788242997173))),
Row(_1=5980, _2=Row(_1=Row(user=5980, product=1793, rating=4.192745754587096))),
Row(_1=3552, _2=Row(_1=Row(user=3552, product=239, rating=1.674775939934242))),
Row(_1=2936, _2=Row(_1=Row(user=2936, product=2539, rating=4.054732345655482))),
Row(_1=4584, _2=Row(_1=Row(user=4584, product=334, rating=4.421954314917132))),
Row(_1=3960, _2=Row(_1=Row(user=3960, product=670, rating=4.275829404551869))),
Row(_1=4232, _2=Row(_1=Row(user=4232, product=1793, rating=4.417897137701926))),
Row(_1=2516, _2=Row(_1=Row(user=2516, product=239, rating=1.6343158556830937))),
Row(_1=4112, _2=Row(_1=Row(user=4112, product=597, rating=4.287093688107204))),
Row(_1=3576, _2=Row(_1=Row(user=3576, product=891, rating=4.253439154970805))),
Row(_1=4952, _2=Row(_1=Row(user=4952, product=736, rating=4.105668088775941))),
Row(_1=768, _2=Row(_1=Row(user=768, product=2599, rating=4.027820936976013))),
Row(_1=2300, _2=Row(_1=Row(user=2300, product=670, rating=4.273715941684921))),
Row(_1=44, _2=Row(_1=Row(user=44, product=2280, rating=3.97395596577004))),
Row(_1=88, _2=Row(_1=Row(user=88, product=670, rating=4.335331218525935))),
Row(_1=3748, _2=Row(_1=Row(user=3748, product=2249, rating=4.177861200008155))),
Row(_1=3264, _2=Row(_1=Row(user=3264, product=2157, rating=4.390595749812224))),
Row(_1=1776, _2=Row(_1=Row(user=1776, product=2268, rating=4.185450122606686))),
Row(_1=5760, _2=Row(_1=Row(user=5760, product=891, rating=4.195867782720131))),
Row(_1=2532, _2=Row(_1=Row(user=2532, product=2357, rating=4.066167047415085))),
Row(_1=3592, _2=Row(_1=Row(user=3592, product=736, rating=4.173359781625122))),
Row(_1=5308, _2=Row(_1=Row(user=5308, product=891, rating=4.437845641703628))),
Row(_1=440, _2=Row(_1=Row(user=440, product=1891, rating=4.012509436292916))),
Row(_1=876, _2=Row(_1=Row(user=876, product=891, rating=4.187999559918648))),
Row(_1=1576, _2=Row(_1=Row(user=1576, product=891, rating=4.346586335952396))),
Row(_1=2484, _2=Row(_1=Row(user=2484, product=670, rating=4.062577582009094))),
Row(_1=5596, _2=Row(_1=Row(user=5596, product=2539, rating=4.220642461583107))),
Row(_1=2376, _2=Row(_1=Row(user=2376, product=891, rating=4.181152923591946))),
Row(_1=5784, _2=Row(_1=Row(user=5784, product=2179, rating=4.115449281802298))),
Row(_1=5856, _2=Row(_1=Row(user=5856, product=2249, rating=4.1600490038643025))),
Row(_1=5740, _2=Row(_1=Row(user=5740, product=2337, rating=4.0577131860555795))),
Row(_1=80, _2=Row(_1=Row(user=80, product=736, rating=4.315593178284848))),
Row(_1=2112, _2=Row(_1=Row(user=2112, product=2280, rating=4.154820579264201))),
Row(_1=2384, _2=Row(_1=Row(user=2384, product=1891, rating=3.978906501971992))),
Row(_1=1048, _2=Row(_1=Row(user=1048, product=2539, rating=1.6339855951095084))),
Row(_1=1448, _2=Row(_1=Row(user=1448, product=2539, rating=4.382297043199636))),
Row(_1=3728, _2=Row(_1=Row(user=3728, product=1929, rating=4.4383363188997755))),
Row(_1=3156, _2=Row(_1=Row(user=3156, product=550, rating=4.18014564953068))),
Row(_1=3408, _2=Row(_1=Row(user=3408, product=1365, rating=4.4622098190485096))),
Row(_1=3968, _2=Row(_1=Row(user=3968, product=1793, rating=4.148475221802286))),
Row(_1=3612, _2=Row(_1=Row(user=3612, product=2249, rating=4.030108181024884))),
Row(_1=1056, _2=Row(_1=Row(user=1056, product=2357, rating=4.245668895600996))),
Row(_1=4088, _2=Row(_1=Row(user=4088, product=1793, rating=4.2074745301378105))),
Row(_1=4784, _2=Row(_1=Row(user=4784, product=1580, rating=4.319748456888377))),
Row(_1=2256, _2=Row(_1=Row(user=2256, product=2249, rating=4.270175498758934))),
Row(_1=396, _2=Row(_1=Row(user=396, product=891, rating=4.209591321744994))),
Row(_1=1936, _2=Row(_1=Row(user=1936, product=2, rating=4.370244867995335))),
Row(_1=5396, _2=Row(_1=Row(user=5396, product=2539, rating=3.9810138532766564))),
Row(_1=5364, _2=Row(_1=Row(user=5364, product=2539, rating=4.379307310153816))),
Row(_1=5868, _2=Row(_1=Row(user=5868, product=2249, rating=4.121056477858075))),
Row(_1=5816, _2=Row(_1=Row(user=5816, product=550, rating=4.32235113664031))),
Row(_1=552, _2=Row(_1=Row(user=552, product=891, rating=4.349896667056026))),
Row(_1=2800, _2=Row(_1=Row(user=2800, product=104, rating=1.6229218867699284))),
Row(_1=4996, _2=Row(_1=Row(user=4996, product=550, rating=4.018094488602049))),
Row(_1=3536, _2=Row(_1=Row(user=3536, product=2157, rating=4.432175670174359))),
Row(_1=3012, _2=Row(_1=Row(user=3012, product=2268, rating=4.079540334329252))),
Row(_1=3584, _2=Row(_1=Row(user=3584, product=2539, rating=3.9781022564292616))),
Row(_1=864, _2=Row(_1=Row(user=864, product=891, rating=4.331014274806834))),
Row(_1=268, _2=Row(_1=Row(user=268, product=891, rating=4.228075840663445))),
Row(_1=2548, _2=Row(_1=Row(user=2548, product=1037, rating=1.7588469176191581))),
Row(_1=3760, _2=Row(_1=Row(user=3760, product=891, rating=4.136697538753038))),
Row(_1=1788, _2=Row(_1=Row(user=1788, product=891, rating=4.325495491136578))),
Row(_1=3040, _2=Row(_1=Row(user=3040, product=2280, rating=4.311899059478221))),
Row(_1=4756, _2=Row(_1=Row(user=4756, product=2337, rating=4.122883134240334))),
Row(_1=4192, _2=Row(_1=Row(user=4192, product=670, rating=4.086724257380354))),
Row(_1=2888, _2=Row(_1=Row(user=2888, product=2179, rating=4.164810226351582))),
Row(_1=4808, _2=Row(_1=Row(user=4808, product=891, rating=4.195813415078542))),
Row(_1=4776, _2=Row(_1=Row(user=4776, product=1721, rating=4.179918640391731))),
Row(_1=2740, _2=Row(_1=Row(user=2740, product=891, rating=4.190923049392471))),
Row(_1=1580, _2=Row(_1=Row(user=1580, product=2337, rating=4.0177724206925465))),
Row(_1=504, _2=Row(_1=Row(user=504, product=891, rating=4.517300772650453))),
Row(_1=1904, _2=Row(_1=Row(user=1904, product=2337, rating=4.237004854580141))),
Row(_1=4272, _2=Row(_1=Row(user=4272, product=2179, rating=4.139726980292351))),
Row(_1=424, _2=Row(_1=Row(user=424, product=550, rating=4.192886516192375))),
Row(_1=2984, _2=Row(_1=Row(user=2984, product=2280, rating=4.326830620627333))),
Row(_1=3256, _2=Row(_1=Row(user=3256, product=736, rating=4.232411799516046))),
Row(_1=3248, _2=Row(_1=Row(user=3248, product=891, rating=4.3424606657343245))),
Row(_1=200, _2=Row(_1=Row(user=200, product=2179, rating=4.107820094253411))),
Row(_1=5020, _2=Row(_1=Row(user=5020, product=1580, rating=1.5780979719977934))),
Row(_1=1440, _2=Row(_1=Row(user=1440, product=891, rating=4.126824971953048))),
Row(_1=5976, _2=Row(_1=Row(user=5976, product=891, rating=4.220528665129782))),
Row(_1=5368, _2=Row(_1=Row(user=5368, product=891, rating=4.321061493316038))),
Row(_1=3916, _2=Row(_1=Row(user=3916, product=2268, rating=4.1355044991672685))),
Row(_1=3804, _2=Row(_1=Row(user=3804, product=670, rating=4.2156906714754925))),
Row(_1=3224, _2=Row(_1=Row(user=3224, product=891, rating=4.093103206196312))),
Row(_1=3800, _2=Row(_1=Row(user=3800, product=891, rating=4.245062565759357))),
Row(_1=1640, _2=Row(_1=Row(user=1640, product=688, rating=4.452674611081795))),
Row(_1=2476, _2=Row(_1=Row(user=2476, product=891, rating=4.219107972187085))),
Row(_1=972, _2=Row(_1=Row(user=972, product=1929, rating=4.278921395278408))),
Row(_1=3152, _2=Row(_1=Row(user=3152, product=891, rating=4.240851955898757))),
Row(_1=4820, _2=Row(_1=Row(user=4820, product=891, rating=4.3562072005950405))),
Row(_1=5380, _2=Row(_1=Row(user=5380, product=1200, rating=4.284843269114716))),
Row(_1=1892, _2=Row(_1=Row(user=1892, product=736, rating=4.145178923965812))),
Row(_1=1240, _2=Row(_1=Row(user=1240, product=891, rating=4.175631542150224))),
Row(_1=3996, _2=Row(_1=Row(user=3996, product=2280, rating=4.176202491952404))),
Row(_1=620, _2=Row(_1=Row(user=620, product=891, rating=4.161834329874898))),
Row(_1=780, _2=Row(_1=Row(user=780, product=1929, rating=4.219449429386265))),
Row(_1=2552, _2=Row(_1=Row(user=2552, product=2539, rating=4.217973495891547))),
Row(_1=5392, _2=Row(_1=Row(user=5392, product=2337, rating=1.7671477863709626))),
Row(_1=1748, _2=Row(_1=Row(user=1748, product=2337, rating=1.7523563832147755))),
Row(_1=60, _2=Row(_1=Row(user=60, product=891, rating=4.315654854623282))),
Row(_1=3068, _2=Row(_1=Row(user=3068, product=1929, rating=4.240332981937856))),
Row(_1=308, _2=Row(_1=Row(user=308, product=550, rating=4.221682521875851))),
Row(_1=3720, _2=Row(_1=Row(user=3720, product=891, rating=4.269195582734139))),
Row(_1=5840, _2=Row(_1=Row(user=5840, product=104, rating=4.423371970876316))),
Row(_1=3840, _2=Row(_1=Row(user=3840, product=670, rating=4.126499709835567))),
Row(_1=3844, _2=Row(_1=Row(user=3844, product=891, rating=4.373141980960004))),
Row(_1=2172, _2=Row(_1=Row(user=2172, product=670, rating=4.014168492562119))),
Row(_1=3072, _2=Row(_1=Row(user=3072, product=2179, rating=4.379132951385641))),
Row(_1=5092, _2=Row(_1=Row(user=5092, product=2337, rating=4.268758929817437))),
Row(_1=3752, _2=Row(_1=Row(user=3752, product=2157, rating=4.5338219750897615))),
Row(_1=3200, _2=Row(_1=Row(user=3200, product=104, rating=4.449464218374032))),
Row(_1=4132, _2=Row(_1=Row(user=4132, product=334, rating=4.477514427627863))),
Row(_1=5664, _2=Row(_1=Row(user=5664, product=550, rating=4.342564442985284))),
Row(_1=3120, _2=Row(_1=Row(user=3120, product=891, rating=4.447831384315873))),
Row(_1=4496, _2=Row(_1=Row(user=4496, product=2539, rating=4.143984125748363))),
Row(_1=4976, _2=Row(_1=Row(user=4976, product=550, rating=4.027766269254829))),
Row(_1=4980, _2=Row(_1=Row(user=4980, product=891, rating=4.133806713294736))),
Row(_1=2428, _2=Row(_1=Row(user=2428, product=891, rating=4.14669922061598))),
Row(_1=4936, _2=Row(_1=Row(user=4936, product=670, rating=4.036426026787868))),
Row(_1=36, _2=Row(_1=Row(user=36, product=891, rating=4.325904796106136))),
Row(_1=1512, _2=Row(_1=Row(user=1512, product=891, rating=4.103317737464002))),
Row(_1=4836, _2=Row(_1=Row(user=4836, product=736, rating=4.140749039506861))),
Row(_1=5996, _2=Row(_1=Row(user=5996, product=2249, rating=4.095268283206462))),
Row(_1=748, _2=Row(_1=Row(user=748, product=550, rating=4.412256740776197))),
Row(_1=3596, _2=Row(_1=Row(user=3596, product=670, rating=4.23379535374142))),
Row(_1=1764, _2=Row(_1=Row(user=1764, product=2157, rating=4.385429900816344))),
Row(_1=2060, _2=Row(_1=Row(user=2060, product=2157, rating=4.37057313694548))),
Row(_1=924, _2=Row(_1=Row(user=924, product=736, rating=4.20325026534461))),
Row(_1=2032, _2=Row(_1=Row(user=2032, product=891, rating=4.225045750586192))),
Row(_1=4404, _2=Row(_1=Row(user=4404, product=2280, rating=4.115888742467258))),
Row(_1=4012, _2=Row(_1=Row(user=4012, product=2249, rating=3.9502973836015913))),
Row(_1=716, _2=Row(_1=Row(user=716, product=891, rating=4.370622709718373))),
Row(_1=4536, _2=Row(_1=Row(user=4536, product=670, rating=4.089346790978166))),
Row(_1=2244, _2=Row(_1=Row(user=2244, product=334, rating=4.5334006481177935))),
Row(_1=4068, _2=Row(_1=Row(user=4068, product=2249, rating=4.015706156355706))),
Row(_1=108, _2=Row(_1=Row(user=108, product=104, rating=1.6912941817720155))),
Row(_1=1616, _2=Row(_1=Row(user=1616, product=2249, rating=4.107357712208032))),
Row(_1=4368, _2=Row(_1=Row(user=4368, product=891, rating=4.1741240202088274))),
Row(_1=1256, _2=Row(_1=Row(user=1256, product=2280, rating=4.136654017419966))),
Row(_1=1952, _2=Row(_1=Row(user=1952, product=2539, rating=4.046416137649234))),
Row(_1=148, _2=Row(_1=Row(user=148, product=2157, rating=4.636408399839816))),
Row(_1=3632, _2=Row(_1=Row(user=3632, product=490, rating=4.060741163544573))),
Row(_1=540, _2=Row(_1=Row(user=540, product=2337, rating=4.117965846511837))),
Row(_1=1384, _2=Row(_1=Row(user=1384, product=2249, rating=4.016826677675268))),
Row(_1=4184, _2=Row(_1=Row(user=4184, product=2289, rating=4.233836103621179))),
Row(_1=940, _2=Row(_1=Row(user=940, product=2337, rating=4.087133185808021))),
Row(_1=4416, _2=Row(_1=Row(user=4416, product=550, rating=4.269929074089644))),
Row(_1=3440, _2=Row(_1=Row(user=3440, product=550, rating=4.230328428859065))),
Row(_1=2120, _2=Row(_1=Row(user=2120, product=104, rating=1.72832553796913))),
Row(_1=3244, _2=Row(_1=Row(user=3244, product=2268, rating=4.128232512162981))),
Row(_1=4520, _2=Row(_1=Row(user=4520, product=600, rating=1.5598452907615195))),
Row(_1=3444, _2=Row(_1=Row(user=3444, product=1929, rating=4.023908967795898))),
Row(_1=1236, _2=Row(_1=Row(user=1236, product=1929, rating=4.252917154341368))),
Row(_1=4444, _2=Row(_1=Row(user=4444, product=1891, rating=4.262941535772765))),
Row(_1=1524, _2=Row(_1=Row(user=1524, product=2337, rating=4.154799960931413))),
Row(_1=48, _2=Row(_1=Row(user=48, product=891, rating=4.341926608589948))),
Row(_1=128, _2=Row(_1=Row(user=128, product=2539, rating=4.444946956830999))),
Row(_1=2996, _2=Row(_1=Row(user=2996, product=550, rating=4.175624465011539))),
Row(_1=5408, _2=Row(_1=Row(user=5408, product=736, rating=4.1525365653593465))),
Row(_1=1088, _2=Row(_1=Row(user=1088, product=891, rating=3.8973724673247814))),
Row(_1=5836, _2=Row(_1=Row(user=5836, product=891, rating=3.9747325687116852))),
Row(_1=2260, _2=Row(_1=Row(user=2260, product=550, rating=4.294740184394907))),
Row(_1=4708, _2=Row(_1=Row(user=4708, product=891, rating=4.1707642371254865))),
Row(_1=560, _2=Row(_1=Row(user=560, product=104, rating=4.357905524301467))),
Row(_1=5116, _2=Row(_1=Row(user=5116, product=891, rating=4.309531110297088))),
Row(_1=2148, _2=Row(_1=Row(user=2148, product=891, rating=4.055631599539954))),
Row(_1=2196, _2=Row(_1=Row(user=2196, product=891, rating=4.319255690555919))),
Row(_1=2860, _2=Row(_1=Row(user=2860, product=891, rating=4.610457931057176))),
Row(_1=700, _2=Row(_1=Row(user=700, product=2280, rating=4.085204848536685))),
Row(_1=3188, _2=Row(_1=Row(user=3188, product=2337, rating=4.339260067551155))),
Row(_1=5212, _2=Row(_1=Row(user=5212, product=891, rating=4.1803398353684225))),
Row(_1=3580, _2=Row(_1=Row(user=3580, product=891, rating=4.333897272239268))),
Row(_1=468, _2=Row(_1=Row(user=468, product=2539, rating=4.400138810594656))),
Row(_1=448, _2=Row(_1=Row(user=448, product=1891, rating=4.1792648048254755))),
Row(_1=1312, _2=Row(_1=Row(user=1312, product=891, rating=4.236181788196567))),
Row(_1=392, _2=Row(_1=Row(user=392, product=550, rating=4.35227903992301))),
Row(_1=3028, _2=Row(_1=Row(user=3028, product=891, rating=4.120143869347774))),
Row(_1=2788, _2=Row(_1=Row(user=2788, product=550, rating=4.156867621434245))),
Row(_1=5540, _2=Row(_1=Row(user=5540, product=891, rating=4.06716985256665))),
Row(_1=960, _2=Row(_1=Row(user=960, product=2539, rating=4.350084107097048))),
Row(_1=3184, _2=Row(_1=Row(user=3184, product=1341, rating=1.6139221479911503))),
Row(_1=776, _2=Row(_1=Row(user=776, product=550, rating=4.051071269444687))),
Row(_1=5048, _2=Row(_1=Row(user=5048, product=891, rating=4.199686772842059))),
Row(_1=932, _2=Row(_1=Row(user=932, product=550, rating=4.028678031414137))),
Row(_1=580, _2=Row(_1=Row(user=580, product=554, rating=4.063052457097421))),
Row(_1=68, _2=Row(_1=Row(user=68, product=1037, rating=4.467893776924807))),
Row(_1=2556, _2=Row(_1=Row(user=2556, product=1793, rating=4.26441558579472))),
Row(_1=5488, _2=Row(_1=Row(user=5488, product=550, rating=4.1444098592448615))),
Row(_1=4552, _2=Row(_1=Row(user=4552, product=891, rating=4.126260405501325))),
Row(_1=4684, _2=Row(_1=Row(user=4684, product=2599, rating=4.2191144024118845))),
Row(_1=1260, _2=Row(_1=Row(user=1260, product=2337, rating=4.231099523389688))),
Row(_1=324, _2=Row(_1=Row(user=324, product=2123, rating=4.209291692519094))),
Row(_1=180, _2=Row(_1=Row(user=180, product=1580, rating=4.360022241289092))),
Row(_1=1080, _2=Row(_1=Row(user=1080, product=2539, rating=1.5446114334424794))),
Row(_1=320, _2=Row(_1=Row(user=320, product=2280, rating=4.060324004478693))),
Row(_1=1868, _2=Row(_1=Row(user=1868, product=2539, rating=4.072086343282382))),
Row(_1=5128, _2=Row(_1=Row(user=5128, product=2280, rating=4.183891395474049))),
Row(_1=4680, _2=Row(_1=Row(user=4680, product=550, rating=4.358519600115158))),
Row(_1=5956, _2=Row(_1=Row(user=5956, product=670, rating=4.084702451939735))),
Row(_1=408, _2=Row(_1=Row(user=408, product=2599, rating=4.036152283222419))),
Row(_1=2436, _2=Row(_1=Row(user=2436, product=891, rating=4.240730693675412))),
Row(_1=1036, _2=Row(_1=Row(user=1036, product=891, rating=4.362537856191134))),
Row(_1=1840, _2=Row(_1=Row(user=1840, product=550, rating=4.083299950274615))),
Row(_1=996, _2=Row(_1=Row(user=996, product=2539, rating=4.181893170390873))),
Row(_1=5256, _2=Row(_1=Row(user=5256, product=1891, rating=4.155528122968921))),
Row(_1=4960, _2=Row(_1=Row(user=4960, product=1793, rating=4.0692792858511755))),
Row(_1=4212, _2=Row(_1=Row(user=4212, product=2249, rating=4.073039173943881))),
Row(_1=1976, _2=Row(_1=Row(user=1976, product=891, rating=4.1557498321880555))),
Row(_1=2396, _2=Row(_1=Row(user=2396, product=1159, rating=4.2738606209086))),
Row(_1=1880, _2=Row(_1=Row(user=1880, product=334, rating=4.5204119208468985))),
Row(_1=24, _2=Row(_1=Row(user=24, product=550, rating=4.025932788452324))),
Row(_1=520, _2=Row(_1=Row(user=520, product=1793, rating=4.181486160448284))),
Row(_1=5712, _2=Row(_1=Row(user=5712, product=2539, rating=4.164772325833882))),
Row(_1=2304, _2=Row(_1=Row(user=2304, product=1037, rating=1.7149294178507168))),
Row(_1=5888, _2=Row(_1=Row(user=5888, product=891, rating=4.160471983225135))),
Row(_1=3404, _2=Row(_1=Row(user=3404, product=891, rating=4.104344771789685))),
Row(_1=4928, _2=Row(_1=Row(user=4928, product=2249, rating=4.208426083540181))),
Row(_1=5660, _2=Row(_1=Row(user=5660, product=104, rating=4.4975362046021115))),
Row(_1=4300, _2=Row(_1=Row(user=4300, product=2539, rating=4.331885094531842))),
Row(_1=1060, _2=Row(_1=Row(user=1060, product=2539, rating=1.5145365665995114))),
Row(_1=2616, _2=Row(_1=Row(user=2616, product=891, rating=4.348866353262652))),
Row(_1=12, _2=Row(_1=Row(user=12, product=2539, rating=4.103400864157712))),
Row(_1=3788, _2=Row(_1=Row(user=3788, product=1005, rating=1.5795414709076794))),
Row(_1=576, _2=Row(_1=Row(user=576, product=334, rating=4.4855458516253925))),
Row(_1=1876, _2=Row(_1=Row(user=1876, product=104, rating=4.513211616514479))),
Row(_1=4280, _2=Row(_1=Row(user=4280, product=2357, rating=3.98946356501565))),
Row(_1=4884, _2=Row(_1=Row(user=4884, product=2280, rating=4.255073648558739))),
Row(_1=5704, _2=Row(_1=Row(user=5704, product=2280, rating=4.173952690347132))),
Row(_1=1752, _2=Row(_1=Row(user=1752, product=2539, rating=4.203495869566377))),
Row(_1=712, _2=Row(_1=Row(user=712, product=104, rating=4.509458165164301))),
Row(_1=5240, _2=Row(_1=Row(user=5240, product=1891, rating=4.312946468452724))),
Row(_1=452, _2=Row(_1=Row(user=452, product=2280, rating=4.118717759441097))),
Row(_1=3480, _2=Row(_1=Row(user=3480, product=1793, rating=3.9999812935384353))),
Row(_1=4064, _2=Row(_1=Row(user=4064, product=2337, rating=4.095973942593687))),
Row(_1=3052, _2=Row(_1=Row(user=3052, product=550, rating=4.088161904562878))),
Row(_1=4732, _2=Row(_1=Row(user=4732, product=891, rating=4.180890838511523))),
Row(_1=5244, _2=Row(_1=Row(user=5244, product=2157, rating=4.572189299196792))),
Row(_1=512, _2=Row(_1=Row(user=512, product=1793, rating=4.2390947889197275))),
Row(_1=2632, _2=Row(_1=Row(user=2632, product=2179, rating=4.171216135209042))),
Row(_1=2960, _2=Row(_1=Row(user=2960, product=1929, rating=4.184424138064814))),
Row(_1=3704, _2=Row(_1=Row(user=3704, product=2249, rating=4.299552789287365))),
Row(_1=1480, _2=Row(_1=Row(user=1480, product=2280, rating=4.369060802725476))),
Row(_1=420, _2=Row(_1=Row(user=420, product=891, rating=4.073576589674026))),
Row(_1=2272, _2=Row(_1=Row(user=2272, product=239, rating=4.345673305498557))),
Row(_1=4104, _2=Row(_1=Row(user=4104, product=891, rating=4.176108834352412))),
Row(_1=3884, _2=Row(_1=Row(user=3884, product=2539, rating=4.336791251533239))),
Row(_1=3672, _2=Row(_1=Row(user=3672, product=891, rating=4.207412628804656))),
Row(_1=4544, _2=Row(_1=Row(user=4544, product=891, rating=4.048359041530503))),
Row(_1=3772, _2=Row(_1=Row(user=3772, product=2289, rating=4.090846846217442))),
Row(_1=5188, _2=Row(_1=Row(user=5188, product=1365, rating=4.256090042956023))),
Row(_1=3420, _2=Row(_1=Row(user=3420, product=550, rating=4.348815106771861))),
Row(_1=3812, _2=Row(_1=Row(user=3812, product=891, rating=4.288590065103227))),
Row(_1=808, _2=Row(_1=Row(user=808, product=891, rating=4.271698146072085))),
Row(_1=2036, _2=Row(_1=Row(user=2036, product=1793, rating=4.04402523612717))),
Row(_1=3024, _2=Row(_1=Row(user=3024, product=2280, rating=4.134166079780047))),
Row(_1=5680, _2=Row(_1=Row(user=5680, product=891, rating=4.192806861563714))),
Row(_1=1096, _2=Row(_1=Row(user=1096, product=334, rating=4.27957208675255))),
Row(_1=1908, _2=Row(_1=Row(user=1908, product=2357, rating=4.193831098469795))),
Row(_1=2188, _2=Row(_1=Row(user=2188, product=2179, rating=4.249291167863803))),
Row(_1=3324, _2=Row(_1=Row(user=3324, product=891, rating=4.076819271682665))),
Row(_1=3208, _2=Row(_1=Row(user=3208, product=1929, rating=4.112061269119219))),
Row(_1=40, _2=Row(_1=Row(user=40, product=891, rating=4.282304421304286))),
Row(_1=4364, _2=Row(_1=Row(user=4364, product=1580, rating=1.6181381978440703))),
Row(_1=3320, _2=Row(_1=Row(user=3320, product=2289, rating=4.233674541614004))),
Row(_1=3636, _2=Row(_1=Row(user=3636, product=2539, rating=4.068658466496326))),
Row(_1=4256, _2=Row(_1=Row(user=4256, product=1929, rating=4.302610803007633))),
Row(_1=3472, _2=Row(_1=Row(user=3472, product=2179, rating=4.153501544790147))),
Row(_1=2872, _2=Row(_1=Row(user=2872, product=1395, rating=4.27265609559156))),
Row(_1=4348, _2=Row(_1=Row(user=4348, product=2357, rating=4.250909509388235))),
Row(_1=2704, _2=Row(_1=Row(user=2704, product=2280, rating=4.061826232821985))),
Row(_1=1848, _2=Row(_1=Row(user=1848, product=891, rating=3.988328102614922))),
Row(_1=136, _2=Row(_1=Row(user=136, product=239, rating=4.554944810466599))),
Row(_1=2540, _2=Row(_1=Row(user=2540, product=891, rating=4.042440149577605))),
Row(_1=5640, _2=Row(_1=Row(user=5640, product=550, rating=4.189063852577957))),
Row(_1=3092, _2=Row(_1=Row(user=3092, product=2249, rating=4.094411609688263))),
Row(_1=1068, _2=Row(_1=Row(user=1068, product=1580, rating=4.4928498494862925))),
Row(_1=1828, _2=Row(_1=Row(user=1828, product=2599, rating=4.283928617711816))),
Row(_1=636, _2=Row(_1=Row(user=636, product=891, rating=4.1995273207650285))),
Row(_1=2372, _2=Row(_1=Row(user=2372, product=670, rating=4.1847098792765935))),
Row(_1=2392, _2=Row(_1=Row(user=2392, product=334, rating=1.6543624064388676))),
Row(_1=5088, _2=Row(_1=Row(user=5088, product=891, rating=4.23350570207509))),
Row(_1=4384, _2=Row(_1=Row(user=4384, product=670, rating=4.386319088971235))),
Row(_1=5500, _2=Row(_1=Row(user=5500, product=891, rating=4.373745758965931))),
Row(_1=524, _2=Row(_1=Row(user=524, product=2157, rating=4.4765823315174185))),
Row(_1=4580, _2=Row(_1=Row(user=4580, product=891, rating=4.246786589412541))),
Row(_1=3556, _2=Row(_1=Row(user=3556, product=2337, rating=4.121519524290132))),
Row(_1=4968, _2=Row(_1=Row(user=4968, product=1793, rating=4.20795855833008))),
Row(_1=2424, _2=Row(_1=Row(user=2424, product=2337, rating=1.690020140038543))),
Row(_1=4956, _2=Row(_1=Row(user=4956, product=2179, rating=4.2878634543911955))),
Row(_1=2280, _2=Row(_1=Row(user=2280, product=104, rating=1.6502620893168494))),
Row(_1=216, _2=Row(_1=Row(user=216, product=1220, rating=1.6013582926581411))),
Row(_1=1316, _2=Row(_1=Row(user=1316, product=2539, rating=4.152773508584198))),
Row(_1=4868, _2=Row(_1=Row(user=4868, product=891, rating=4.250592144200791))),
Row(_1=2804, _2=Row(_1=Row(user=2804, product=891, rating=4.4001616876795895))),
Row(_1=2756, _2=Row(_1=Row(user=2756, product=2280, rating=4.125297059281732))),
Row(_1=5032, _2=Row(_1=Row(user=5032, product=891, rating=4.195295364301103))),
Row(_1=5588, _2=Row(_1=Row(user=5588, product=2, rating=4.459748044771123))),
Row(_1=92, _2=Row(_1=Row(user=92, product=2599, rating=4.2290352093987025))),
Row(_1=3348, _2=Row(_1=Row(user=3348, product=1793, rating=4.08196954853548))),
Row(_1=3808, _2=Row(_1=Row(user=3808, product=1793, rating=4.172919748997541))),
Row(_1=5312, _2=Row(_1=Row(user=5312, product=2539, rating=4.132264521727087))),
Row(_1=4160, _2=Row(_1=Row(user=4160, product=891, rating=4.306212517825564))),
Row(_1=4824, _2=Row(_1=Row(user=4824, product=891, rating=4.118089468875997))),
Row(_1=72, _2=Row(_1=Row(user=72, product=1929, rating=4.3914069914252405))),
Row(_1=2836, _2=Row(_1=Row(user=2836, product=891, rating=4.1691276677762446))),
Row(_1=1664, _2=Row(_1=Row(user=1664, product=1891, rating=3.9619716779689513))),
Row(_1=5776, _2=Row(_1=Row(user=5776, product=2337, rating=4.179204331656156))),
Row(_1=2856, _2=Row(_1=Row(user=2856, product=2539, rating=4.063365698197941))),
Row(_1=736, _2=Row(_1=Row(user=736, product=2539, rating=4.0214414388558755))),
Row(_1=1120, _2=Row(_1=Row(user=1120, product=2337, rating=4.540390747080309))),
Row(_1=144, _2=Row(_1=Row(user=144, product=2337, rating=4.2203367782504))),
Row(_1=2448, _2=Row(_1=Row(user=2448, product=2357, rating=3.9985942357467374))),
Row(_1=652, _2=Row(_1=Row(user=652, product=891, rating=4.173198246383946))),
Row(_1=1852, _2=Row(_1=Row(user=1852, product=2179, rating=4.1349721820669405))),
Row(_1=2708, _2=Row(_1=Row(user=2708, product=2337, rating=1.7707385160458167))),
Row(_1=2088, _2=Row(_1=Row(user=2088, product=2249, rating=4.135125345349079))),
Row(_1=84, _2=Row(_1=Row(user=84, product=2539, rating=4.133061482478866))),
Row(_1=1984, _2=Row(_1=Row(user=1984, product=2357, rating=4.091905422498151))),
Row(_1=404, _2=Row(_1=Row(user=404, product=2357, rating=4.1542484263607555))),
Row(_1=2748, _2=Row(_1=Row(user=2748, product=1929, rating=4.193502437465975))),
Row(_1=4196, _2=Row(_1=Row(user=4196, product=670, rating=4.289747877778957))),
Row(_1=1192, _2=Row(_1=Row(user=1192, product=891, rating=4.13034498428857))),
Row(_1=5192, _2=Row(_1=Row(user=5192, product=1200, rating=4.19020074953249))),
Row(_1=3136, _2=Row(_1=Row(user=3136, product=2357, rating=4.20259507759914))),
Row(_1=3780, _2=Row(_1=Row(user=3780, product=891, rating=4.184654566669988))),
Row(_1=1264, _2=Row(_1=Row(user=1264, product=1850, rating=1.5402000432775942))),
Row(_1=5348, _2=Row(_1=Row(user=5348, product=891, rating=4.18981158674571))),
Row(_1=5624, _2=Row(_1=Row(user=5624, product=104, rating=1.644363874492734))),
Row(_1=2420, _2=Row(_1=Row(user=2420, product=490, rating=4.276010579489165))),
Row(_1=2940, _2=Row(_1=Row(user=2940, product=2280, rating=4.1180040391100405))),
Row(_1=1928, _2=Row(_1=Row(user=1928, product=2599, rating=4.199259498678097))),
Row(_1=1696, _2=Row(_1=Row(user=1696, product=2357, rating=4.056602224776945))),
Row(_1=5208, _2=Row(_1=Row(user=5208, product=891, rating=3.9941602024400735))),
Row(_1=2492, _2=Row(_1=Row(user=2492, product=1929, rating=4.125369277599658))),
Row(_1=4964, _2=Row(_1=Row(user=4964, product=2357, rating=4.258708949585561))),
Row(_1=1796, _2=Row(_1=Row(user=1796, product=2539, rating=3.990291269863604))),
Row(_1=4124, _2=Row(_1=Row(user=4124, product=736, rating=4.182407875536065))),
Row(_1=3744, _2=Row(_1=Row(user=3744, product=1265, rating=4.407180332336074))),
Row(_1=124, _2=Row(_1=Row(user=124, product=2357, rating=4.407802936373245))),
Row(_1=164, _2=Row(_1=Row(user=164, product=1793, rating=4.236176321081576))),
Row(_1=984, _2=Row(_1=Row(user=984, product=104, rating=1.7443379284000355))),
Row(_1=3512, _2=Row(_1=Row(user=3512, product=2539, rating=4.264133009605483))),
Row(_1=1340, _2=Row(_1=Row(user=1340, product=891, rating=4.147706850572416))),
Row(_1=1368, _2=Row(_1=Row(user=1368, product=2539, rating=1.7180413753187453))),
Row(_1=4792, _2=Row(_1=Row(user=4792, product=2, rating=4.366883087676052))),
Row(_1=948, _2=Row(_1=Row(user=948, product=2539, rating=1.5663998977079459))),
Row(_1=1420, _2=Row(_1=Row(user=1420, product=891, rating=4.329061180093196))),
Row(_1=5000, _2=Row(_1=Row(user=5000, product=2539, rating=4.198082945208513))),
Row(_1=8, _2=Row(_1=Row(user=8, product=891, rating=4.187612987814601))),
Row(_1=5220, _2=Row(_1=Row(user=5220, product=550, rating=4.235655346477322))),
Row(_1=4908, _2=Row(_1=Row(user=4908, product=670, rating=4.07798858252973))),
Row(_1=4744, _2=Row(_1=Row(user=4744, product=891, rating=3.986355712447266))),
Row(_1=3888, _2=Row(_1=Row(user=3888, product=891, rating=4.240236521025783))),
Row(_1=372, _2=Row(_1=Row(user=372, product=1551, rating=1.6022843328462586))),
Row(_1=820, _2=Row(_1=Row(user=820, product=1395, rating=4.2318633441958085))),
Row(_1=3964, _2=Row(_1=Row(user=3964, product=550, rating=3.995136403146274))),
Row(_1=4240, _2=Row(_1=Row(user=4240, product=891, rating=4.26794430996529))),
Row(_1=1124, _2=Row(_1=Row(user=1124, product=2599, rating=4.221584792866826))),
Row(_1=4148, _2=Row(_1=Row(user=4148, product=891, rating=4.333312142220204))),
Row(_1=3340, _2=Row(_1=Row(user=3340, product=1793, rating=4.08777244383148))),
Row(_1=2968, _2=Row(_1=Row(user=2968, product=1319, rating=4.162494009865131))),
Row(_1=3604, _2=Row(_1=Row(user=3604, product=2068, rating=4.299140101348313))),
Row(_1=1772, _2=Row(_1=Row(user=1772, product=1265, rating=1.7126344558131177))),
Row(_1=600, _2=Row(_1=Row(user=600, product=2539, rating=3.983338117482352))),
Row(_1=3824, _2=Row(_1=Row(user=3824, product=1891, rating=3.9971213403696186))),
Row(_1=2224, _2=Row(_1=Row(user=2224, product=334, rating=1.7184208018341438))),
Row(_1=4080, _2=Row(_1=Row(user=4080, product=1536, rating=4.291115004534234))),
Row(_1=2660, _2=Row(_1=Row(user=2660, product=2357, rating=3.942466218477591))),
Row(_1=3476, _2=Row(_1=Row(user=3476, product=1929, rating=4.152452279814433))),
Row(_1=892, _2=Row(_1=Row(user=892, product=2289, rating=3.9934722289692792))),
Row(_1=2780, _2=Row(_1=Row(user=2780, product=550, rating=4.117866488725994))),
Row(_1=4420, _2=Row(_1=Row(user=4420, product=891, rating=4.264160778624468))),
Row(_1=3016, _2=Row(_1=Row(user=3016, product=2280, rating=4.17906169847816))),
Row(_1=4512, _2=Row(_1=Row(user=4512, product=1891, rating=4.223500404692458))),
Row(_1=5532, _2=Row(_1=Row(user=5532, product=2539, rating=4.205263803980562))),
Row(_1=2636, _2=Row(_1=Row(user=2636, product=891, rating=4.310741844240138))),
Row(_1=1896, _2=Row(_1=Row(user=1896, product=104, rating=1.5766489071017593))),
Row(_1=2952, _2=Row(_1=Row(user=2952, product=1365, rating=4.431542563115541))),
Row(_1=3048, _2=Row(_1=Row(user=3048, product=670, rating=4.190741506007172))),
Row(_1=1564, _2=Row(_1=Row(user=1564, product=550, rating=4.206843886515257))),
Row(_1=4460, _2=Row(_1=Row(user=4460, product=2357, rating=4.055664462559782))),
Row(_1=4860, _2=Row(_1=Row(user=4860, product=2337, rating=3.9780135650071444))),
Row(_1=2736, _2=Row(_1=Row(user=2736, product=891, rating=4.2431775511600005))),
Row(_1=1700, _2=Row(_1=Row(user=1700, product=554, rating=4.264601939154326))),
Row(_1=4840, _2=Row(_1=Row(user=4840, product=891, rating=4.1412100893719135))),
Row(_1=4768, _2=Row(_1=Row(user=4768, product=104, rating=1.6119186111131534))),
Row(_1=2016, _2=Row(_1=Row(user=2016, product=550, rating=4.1117880765234265))),
Row(_1=5372, _2=Row(_1=Row(user=5372, product=568, rating=3.8674192494496316))),
Row(_1=2772, _2=Row(_1=Row(user=2772, product=2539, rating=4.187093338787025))),
Row(_1=5720, _2=Row(_1=Row(user=5720, product=334, rating=4.286851004147863))),
Row(_1=2760, _2=Row(_1=Row(user=2760, product=2179, rating=4.190726333647677))),
Row(_1=3900, _2=Row(_1=Row(user=3900, product=1265, rating=1.7501060133874558))),
Row(_1=5756, _2=Row(_1=Row(user=5756, product=550, rating=4.394486981155008))),
Row(_1=1704, _2=Row(_1=Row(user=1704, product=2179, rating=3.908274701234809))),
Row(_1=256, _2=Row(_1=Row(user=256, product=1793, rating=4.201196382397364))),
Row(_1=1920, _2=Row(_1=Row(user=1920, product=2357, rating=4.126587111324971))),
Row(_1=4408, _2=Row(_1=Row(user=4408, product=2157, rating=1.6912486196874912))),
Row(_1=5108, _2=Row(_1=Row(user=5108, product=891, rating=4.35158594475156))),
Row(_1=2276, _2=Row(_1=Row(user=2276, product=550, rating=4.0880255687679785))),
Row(_1=3268, _2=Row(_1=Row(user=3268, product=550, rating=4.295780177216059))),
Row(_1=5400, _2=Row(_1=Row(user=5400, product=1595, rating=4.054933114070547))),
Row(_1=3104, _2=Row(_1=Row(user=3104, product=736, rating=4.326606980602824))),
Row(_1=3504, _2=Row(_1=Row(user=3504, product=2157, rating=1.7687745980186804))),
Row(_1=1032, _2=Row(_1=Row(user=1032, product=1793, rating=4.305669778235957))),
Row(_1=2480, _2=Row(_1=Row(user=2480, product=1891, rating=4.213685017882105))),
Row(_1=4312, _2=Row(_1=Row(user=4312, product=2280, rating=4.124496309018849))),
Row(_1=1452, _2=Row(_1=Row(user=1452, product=2337, rating=4.180348766537903))),
Row(_1=4376, _2=Row(_1=Row(user=4376, product=891, rating=4.147509409168438))),
Row(_1=616, _2=Row(_1=Row(user=616, product=1793, rating=4.073015673028642))),
Row(_1=5828, _2=Row(_1=Row(user=5828, product=891, rating=4.222905002357189))),
Row(_1=4564, _2=Row(_1=Row(user=4564, product=891, rating=4.043432735264145))),
Row(_1=3356, _2=Row(_1=Row(user=3356, product=490, rating=4.076078511478692))),
Row(_1=608, _2=Row(_1=Row(user=608, product=104, rating=4.451637520960401))),
Row(_1=1184, _2=Row(_1=Row(user=1184, product=891, rating=4.148365669333284))),
Row(_1=5552, _2=Row(_1=Row(user=5552, product=891, rating=4.1969192235650965))),
Row(_1=2028, _2=Row(_1=Row(user=2028, product=891, rating=4.268060552948757))),
Row(_1=172, _2=Row(_1=Row(user=172, product=550, rating=4.162799542821854))),
Row(_1=916, _2=Row(_1=Row(user=916, product=550, rating=4.113009960270372))),
Row(_1=5452, _2=Row(_1=Row(user=5452, product=2249, rating=4.0666953338383545))),
Row(_1=5612, _2=Row(_1=Row(user=5612, product=104, rating=4.423466685248609))),
Row(_1=2472, _2=Row(_1=Row(user=2472, product=2280, rating=4.1961154587762035))),
Row(_1=3212, _2=Row(_1=Row(user=3212, product=891, rating=4.1608240102368))),
Row(_1=2184, _2=Row(_1=Row(user=2184, product=1159, rating=4.445688015200764))),
Row(_1=4516, _2=Row(_1=Row(user=4516, product=550, rating=4.161428011687079))),
Row(_1=5068, _2=Row(_1=Row(user=5068, product=1793, rating=4.273751230253366))),
Row(_1=1864, _2=Row(_1=Row(user=1864, product=1127, rating=4.117255955749717))),
Row(_1=284, _2=Row(_1=Row(user=284, product=334, rating=1.497686077241872))),
Row(_1=1956, _2=Row(_1=Row(user=1956, product=550, rating=4.193154544127309))),
Row(_1=4464, _2=Row(_1=Row(user=4464, product=1891, rating=4.325000516171788))),
Row(_1=4040, _2=Row(_1=Row(user=4040, product=2249, rating=4.2421814371865425))),
Row(_1=5764, _2=Row(_1=Row(user=5764, product=2249, rating=4.325917435586081))),
Row(_1=872, _2=Row(_1=Row(user=872, product=891, rating=4.283553725819733))),
Row(_1=1396, _2=Row(_1=Row(user=1396, product=2539, rating=4.51368418260431))),
Row(_1=3828, _2=Row(_1=Row(user=3828, product=2157, rating=1.7004756602543747))),
Row(_1=1672, _2=Row(_1=Row(user=1672, product=2539, rating=1.6104211431135877))),
Row(_1=5332, _2=Row(_1=Row(user=5332, product=104, rating=4.219386035843236))),
Row(_1=516, _2=Row(_1=Row(user=516, product=891, rating=4.401833656700184))),
Row(_1=176, _2=Row(_1=Row(user=176, product=1037, rating=4.159608785295751))),
Row(_1=840, _2=Row(_1=Row(user=840, product=2249, rating=4.108334316792038))),
Row(_1=3648, _2=Row(_1=Row(user=3648, product=2179, rating=4.15338949380627))),
Row(_1=3036, _2=Row(_1=Row(user=3036, product=891, rating=4.2534476307004265))),
Row(_1=4320, _2=Row(_1=Row(user=4320, product=891, rating=4.214625096834374))),
Row(_1=5864, _2=Row(_1=Row(user=5864, product=1793, rating=4.110243311500542))),
Row(_1=2320, _2=Row(_1=Row(user=2320, product=550, rating=4.098322066822634))),
Row(_1=3652, _2=Row(_1=Row(user=3652, product=1793, rating=4.183639552925319))),
Row(_1=3368, _2=Row(_1=Row(user=3368, product=568, rating=4.206210854585962))),
Row(_1=4372, _2=Row(_1=Row(user=4372, product=550, rating=4.206506551577659))),
Row(_1=16, _2=Row(_1=Row(user=16, product=891, rating=4.21833533161735))),
Row(_1=3308, _2=Row(_1=Row(user=3308, product=670, rating=4.1693920525623))),
Row(_1=1856, _2=Row(_1=Row(user=1856, product=2179, rating=4.227030687894935))),
Row(_1=2176, _2=Row(_1=Row(user=2176, product=550, rating=4.18244005179723))),
Row(_1=2840, _2=Row(_1=Row(user=2840, product=1793, rating=4.214513195187455))),
Row(_1=1972, _2=Row(_1=Row(user=1972, product=334, rating=4.465354196749468))),
Row(_1=4788, _2=Row(_1=Row(user=4788, product=2357, rating=4.048317522162106))),
Row(_1=5892, _2=Row(_1=Row(user=5892, product=2249, rating=4.043888193068723))),
Row(_1=3108, _2=Row(_1=Row(user=3108, product=2599, rating=4.120453941889975))),
Row(_1=376, _2=Row(_1=Row(user=376, product=2337, rating=4.083818932775527))),
Row(_1=5692, _2=Row(_1=Row(user=5692, product=104, rating=4.499010363824646))),
Row(_1=4244, _2=Row(_1=Row(user=4244, product=2539, rating=3.9932752968545997))),
Row(_1=928, _2=Row(_1=Row(user=928, product=2280, rating=4.098261243314219))),
Row(_1=188, _2=Row(_1=Row(user=188, product=891, rating=4.129077452419203))),
Row(_1=2296, _2=Row(_1=Row(user=2296, product=2539, rating=4.183784259018281))),
Row(_1=4468, _2=Row(_1=Row(user=4468, product=2179, rating=4.110037286786327))),
Row(_1=3312, _2=Row(_1=Row(user=3312, product=104, rating=4.3894837745855675))),
Row(_1=4816, _2=Row(_1=Row(user=4816, product=1265, rating=4.2574163193176915))),
Row(_1=380, _2=Row(_1=Row(user=380, product=1793, rating=4.179981388320675))),
Row(_1=132, _2=Row(_1=Row(user=132, product=550, rating=4.199868415050458))),
Row(_1=5272, _2=Row(_1=Row(user=5272, product=891, rating=4.135675661207763))),
Row(_1=5292, _2=Row(_1=Row(user=5292, product=2539, rating=4.1892040663595616))),
Row(_1=5284, _2=Row(_1=Row(user=5284, product=2539, rating=4.23712804520917))),
Row(_1=364, _2=Row(_1=Row(user=364, product=104, rating=4.255988875526691))),
Row(_1=5268, _2=Row(_1=Row(user=5268, product=2357, rating=4.126135102297142))),
Row(_1=5528, _2=Row(_1=Row(user=5528, product=2249, rating=4.059189146476531))),
Row(_1=1152, _2=Row(_1=Row(user=1152, product=2539, rating=4.2023663331919145))),
Row(_1=2884, _2=Row(_1=Row(user=2884, product=2179, rating=4.10013109402604))),
Row(_1=4600, _2=Row(_1=Row(user=4600, product=600, rating=1.6324490593043794))),
Row(_1=500, _2=Row(_1=Row(user=500, product=2280, rating=4.188756383130045))),
Row(_1=660, _2=Row(_1=Row(user=660, product=1891, rating=4.213560754969617))),
Row(_1=4728, _2=Row(_1=Row(user=4728, product=891, rating=4.292583976990667))),
Row(_1=2152, _2=Row(_1=Row(user=2152, product=2179, rating=4.017655306002414))),
Row(_1=4636, _2=Row(_1=Row(user=4636, product=2374, rating=4.348188028273253))),
Row(_1=2404, _2=Row(_1=Row(user=2404, product=891, rating=4.152654247090773))),
Row(_1=3004, _2=Row(_1=Row(user=3004, product=891, rating=4.2628492669129825))),
Row(_1=4296, _2=Row(_1=Row(user=4296, product=891, rating=4.05970543462634))),
Row(_1=2456, _2=Row(_1=Row(user=2456, product=891, rating=4.351484764920206))),
Row(_1=3892, _2=Row(_1=Row(user=3892, product=670, rating=4.301211502070246))),
Row(_1=4436, _2=Row(_1=Row(user=4436, product=550, rating=4.145424043198427))),
Row(_1=4428, _2=Row(_1=Row(user=4428, product=2357, rating=4.1456855211861035))),
Row(_1=2228, _2=Row(_1=Row(user=2228, product=670, rating=4.211051831937587))),
Row(_1=1948, _2=Row(_1=Row(user=1948, product=2289, rating=4.096661587028478))),
Row(_1=232, _2=Row(_1=Row(user=232, product=1793, rating=4.282854310654511))),
Row(_1=2900, _2=Row(_1=Row(user=2900, product=2571, rating=4.281361639436639))),
Row(_1=3852, _2=Row(_1=Row(user=3852, product=1721, rating=4.202547192473968))),
Row(_1=4172, _2=Row(_1=Row(user=4172, product=891, rating=4.246079110386389))),
Row(_1=5564, _2=Row(_1=Row(user=5564, product=550, rating=4.099736250926857))),
Row(_1=240, _2=Row(_1=Row(user=240, product=239, rating=1.7042704725739901))),
Row(_1=4264, _2=Row(_1=Row(user=4264, product=891, rating=4.1406862007477745))),
Row(_1=3252, _2=Row(_1=Row(user=3252, product=550, rating=4.320351199787766))),
Row(_1=4548, _2=Row(_1=Row(user=4548, product=891, rating=4.177708020113489))),
Row(_1=260, _2=Row(_1=Row(user=260, product=1265, rating=1.7108436747369389))),
Row(_1=4456, _2=Row(_1=Row(user=4456, product=2157, rating=1.571939617491956))),
Row(_1=5572, _2=Row(_1=Row(user=5572, product=550, rating=4.030679130491581))),
Row(_1=4360, _2=Row(_1=Row(user=4360, product=104, rating=4.349198124166514))),
Row(_1=5072, _2=Row(_1=Row(user=5072, product=891, rating=4.0249608661307015))),
Row(_1=844, _2=Row(_1=Row(user=844, product=2337, rating=4.3372638035858575))),
Row(_1=1832, _2=Row(_1=Row(user=1832, product=2539, rating=4.11115903288053))),
Row(_1=5052, _2=Row(_1=Row(user=5052, product=891, rating=4.145206206070197))),
Row(_1=5780, _2=Row(_1=Row(user=5780, product=670, rating=4.118722974715535))),
Row(_1=900, _2=Row(_1=Row(user=900, product=2539, rating=4.497906176058963))),
Row(_1=4052, _2=Row(_1=Row(user=4052, product=670, rating=4.30947430021388))),
Row(_1=5944, _2=Row(_1=Row(user=5944, product=736, rating=4.1043705498420575))),
Row(_1=3352, _2=Row(_1=Row(user=3352, product=2599, rating=3.944959056430183))),
Row(_1=3956, _2=Row(_1=Row(user=3956, product=104, rating=4.510981683676135))),
Row(_1=2252, _2=Row(_1=Row(user=2252, product=1929, rating=4.269464231621033))),
Row(_1=4696, _2=Row(_1=Row(user=4696, product=2289, rating=4.242700509638427))),
Row(_1=1560, _2=Row(_1=Row(user=1560, product=891, rating=4.103816129746856))),
Row(_1=484, _2=Row(_1=Row(user=484, product=2249, rating=4.16125063013054))),
Row(_1=2692, _2=Row(_1=Row(user=2692, product=891, rating=4.23845982090625))),
Row(_1=5076, _2=Row(_1=Row(user=5076, product=1793, rating=4.059989322510377))),
Row(_1=356, _2=Row(_1=Row(user=356, product=1929, rating=4.083181648266685))),
Row(_1=1392, _2=Row(_1=Row(user=1392, product=550, rating=4.259327702812178))),
Row(_1=4704, _2=Row(_1=Row(user=4704, product=1929, rating=4.2089016927688))),
Row(_1=2340, _2=Row(_1=Row(user=2340, product=600, rating=4.4551254374189835))),
Row(_1=1736, _2=Row(_1=Row(user=1736, product=2539, rating=4.027118972523676))),
Row(_1=3460, _2=Row(_1=Row(user=3460, product=891, rating=4.18656802210389))),
Row(_1=3588, _2=Row(_1=Row(user=3588, product=2289, rating=4.095698410585452))),
Row(_1=4844, _2=Row(_1=Row(user=4844, product=2249, rating=3.9560234361762467))),
Row(_1=4056, _2=Row(_1=Row(user=4056, product=1580, rating=4.53515133266145))),
Row(_1=3984, _2=Row(_1=Row(user=3984, product=2179, rating=4.318974616465706))),
Row(_1=5416, _2=Row(_1=Row(user=5416, product=2249, rating=4.004608521874618))),
Row(_1=5912, _2=Row(_1=Row(user=5912, product=2337, rating=4.303624598561727))),
Row(_1=340, _2=Row(_1=Row(user=340, product=1265, rating=4.403773393748977))),
Row(_1=5436, _2=Row(_1=Row(user=5436, product=891, rating=4.180854345234951))),
Row(_1=2076, _2=Row(_1=Row(user=2076, product=2289, rating=4.280507528810459))),
Row(_1=2896, _2=Row(_1=Row(user=2896, product=670, rating=4.448040314616922))),
Row(_1=860, _2=Row(_1=Row(user=860, product=891, rating=4.256105986596294))),
Row(_1=2828, _2=Row(_1=Row(user=2828, product=334, rating=4.300070174143656))),
Row(_1=5556, _2=Row(_1=Row(user=5556, product=550, rating=4.1103817462453645))),
...]
In the movie recommender web application the predicted ratings get stored in a Cloudant datastore for easy retrieval.
In [ ]:
Content source: snowch/movie-recommender-demo
Similar notebooks: