In [16]:
from pyspark.sql.functions import col, avg
from pyspark.ml.recommendation import ALS
from pyspark.ml.feature import StringIndexer
In [17]:
reviews_df = spark.read.json('../data/reviews')
In [18]:
train_df, test_df = reviews_df.randomSplit(
weights=[0.75, 0.25]
)
In [19]:
print(train_df.count())
print(test_df.count())
1931928
645370
In [20]:
from pyspark.ml.recommendation import ALS
In [21]:
train_df.agg(avg(col('stars'))).first()[0]
Out[21]:
3.700451569623713
In [22]:
user_groups = train_df.groupBy('user_id')
In [23]:
[(row['user_id'], row['avg(stars)']) for row in user_groups.avg('stars').collect()]
Out[23]:
[('2XDTpvVKW2aJwlyyNWwGsg', 3.6666666666666665),
('EaBKe-8LB-NHuH7Us-QhGw', 3.8378378378378377),
('fDAZoT0PRyd0K9TKerBxsQ', 2.0),
('zWWcik1fRPZviBCQLC26FQ', 3.211340206185567),
('eeVuxeWBuokW26A4S68C3Q', 2.6666666666666665),
('Z1ujtbw8Edcrgcr6ebSyOA', 2.6666666666666665),
('BGzavA_ddMr-jGmhArv7fg', 3.6008771929824563),
('60_lsQJ8JEGfZeXcTgKn8Q', 4.0476190476190474),
('NkENycDoq8acyrJl4jNwfA', 4.666666666666667),
('ZjaNE5PtYk8j2K1kOpr2Ig', 3.2580645161290325),
('iZwoTW2DoMRNtpAYqChIFg', 3.1666666666666665),
('HrZbzPHFCoeS1gbsnkAqHQ', 4.0),
('D2ljL5ejuqpa4f8fnZ1qjw', 3.7739726027397262),
('-mTmwfY9K9zcPnVmTltH3w', 4.5),
('zHJ2b0q5eucGugUWPnQYoQ', 5.0),
('iy8snpt14cWUXvcX-5xNXg', 4.0),
('4tF9R_a5je3fPwan8PIaPQ', 4.5),
('WdP5vTFdRmHKEkbGHFoO0g', 1.0),
('t89f0VSfCqYF8QM8UfFHEQ', 4.0),
('fIwRq2ebG_Ve1NTwfMVU7g', 3.0),
('W584cDDHqw_PYd5_l3F-nA', 5.0),
('KuGQIxKfGiHLNRuWLuPpXA', 3.806451612903226),
('-hnBzgVoRoqLrGVSxO0ilg', 3.260869565217391),
('A8WnomchAmsRTXnGo47lpw', 4.5),
('cw98vAuzuA-bPwpcjUC2kw', 4.0),
('tg1Eh5J9iqH5Y0ycb1bejw', 3.482142857142857),
('hgzoTUz2XJlpZsh69kNceQ', 3.0),
('R8u2_-ElvpPHxgEg3XZ8OQ', 4.0),
('KvAqvpuQ8HpwQMoJ1fHghw', 3.5),
('3DwWwdLEty3JcsIz6MSeGQ', 4.333333333333333),
('mIOZQ379FL_qhcigo7776Q', 3.6363636363636362),
('IbBym_4jXzTwhUQ4oxE47w', 3.9),
('FuSn5ZxN2NV_PpK03gwcsg', 3.4761904761904763),
('CIrH6Ln0hCTnZjaIQYZY5Q', 4.5),
('lxQv93VhDjS52rJ1DQDBDQ', 3.5555555555555554),
('AKiV4pKWkyq532lQnh-M4Q', 5.0),
('jC_pYRP1M2LmimVd8zZB7w', 3.6666666666666665),
('vVUUSCPohkiqn8Fx5b0pTw', 4.0),
('CzkWUMIYDxUSetfCRvYG5g', 4.375),
('Q24l4MEURgQmyaBs_Tlslw', 3.0),
('_tWsCv3Hh0MZcy1qSv-Xog', 4.074074074074074),
('aHiQYaTXrmQTeG6106l5wg', 3.6153846153846154),
('pSJeKLt0sfkJqqqFdGtpsg', 4.428571428571429),
('P_wAjy3nXyh5rLipL9j6sQ', 5.0),
('emDgJKaMaOARJMYW-sBkIA', 4.0),
('k7OYIWu_SDAsmddl_nWHpQ', 1.0),
('9m7RsJz6gg9a1jFpEP7JfQ', 2.0),
('67C1TB6K93CnRTC1U2L3uQ', 4.0),
('aZ2DKwGjjTfrGn4AOSI34w', 3.2777777777777777),
('2SkR2uQns3bm3g-lDOWIhw', 4.0),
('s8MiJBFrUlFK5gnh8sei9g', 2.9047619047619047),
('zdS_htOVIskdIyCO9U-20w', 4.0),
('chyyyctm9ckd7q2mtMZ7Ag', 4.411764705882353),
('wzw1iD40GSFoIZntz6k_Rg', 3.526315789473684),
('jfAj5ildPaOKmf8I7PvokQ', 5.0),
('AXUI4yHHkcUSXKeb89VgaQ', 3.0),
('7a6y67Jg8AO8ArVo3CHV9Q', 5.0),
('I3ryn4tf6L9YbuZ8ZC4IoQ', 3.782608695652174),
('AdThsUyhnIqWR74cCz82zg', 4.5),
('dADaXQyALLnwUyWP6Tjdog', 4.666666666666667),
('hGm_xuka1I6_Jp_VZCOixg', 1.75),
('VKxVM2ITo6pdzxDxaeBKww', 4.714285714285714),
('tMmGMiagt8gBYSu5lmqeCw', 3.1538461538461537),
('jx9srgNjR8TakJqoWnMXcw', 3.5),
('VTfQfSCiofTkx5tOv_EWpA', 4.0),
('rs3pq6wRmaSIADCInQXp9g', 4.217391304347826),
('N8l3tJnxyaNGAJC_JqVX5w', 2.0),
('GyVQmBDD63ARsr6op0_Rig', 4.666666666666667),
('znNp7ysWoiUfZ7PpQu0yuQ', 1.0),
('IpEBJtEXwFeyg_53SMoR1Q', 4.0),
('jWR2RiSlFiBB5RVKKmjmJg', 4.0),
('rXSTTSDOhcjLrv16kWsM2w', 4.46875),
('Wjdv1d4sK-VzSC0CdORBWw', 4.0),
('14fOvgK8-Q4rj9AYdXVQdg', 4.0),
('ugW-qIugMJnt2ptHruWs3A', 3.25),
('kFFhw53ZEPoDo6okPU4eRg', 2.6818181818181817),
('4PAsp0oWi22zfSz6ld6rHQ', 5.0),
('L3IOpl6SO5nVkQOiT1-_hg', 4.238095238095238),
('Rrj_TMC2pERnYW8-QNthAw', 4.0),
('wXVaAnAPWpv-uquVMOh0-w', 5.0),
('LJXCJNsmSKUXK8VF-6yr0g', 3.2),
('2KlKG09l3m150EzhET2tZw', 5.0),
('rqULwhOLlZjJ0HYIf_GThw', 4.5),
('955NJMJNeAFLd1pOdV5hEA', 5.0),
('rLt0vCpxZs7QAvB2BJFmaA', 4.0),
('OJEe-_8YdU71GkbuGt0CDg', 3.25),
('Ct6iAROQzD-a1K4vMzsJXg', 3.2),
('7gSwABACGPVrRvWlO5ORGA', 3.6666666666666665),
('XAja3Ed6Fa_lwZl_7tb9aw', 3.72),
('xHrINmhR2wyxStPBG5eqgw', 4.0),
('IXjMoc5YpYX_MnYit5ItGw', 4.0),
('WDRb3LyKDNwou1w7N-vGUw', 3.25),
('eEEpHwJxTdkmeNO8kVws2Q', 5.0),
('wc79RHhGnm8gJnpVj6tA4g', 4.8),
('3iXddQztzXtJY9Fvf60Jyw', 3.357142857142857),
('gmEFwB63iZ4YwBig26Vbbw', 2.5),
('WlBQRynXJi8tbrnNh5V84g', 3.357142857142857),
('2nmA1nvnVxYN6JmeZwav_Q', 4.666666666666667),
('2QCW0fm-mDleaL8KN7DekA', 3.6666666666666665),
('NXuzCE-B76JcJUxpCpyQmw', 4.0),
('tgXIsqil9g4R7cGOjVqI1g', 5.0),
('kfSz_EZ33M5FAA8-CqpyLw', 1.0),
('FyQrUamokaPLDrBxGmzPnA', 3.2333333333333334),
('qV2wmfhc2eAN6sKOG9p99w', 4.0),
('wYyC1E2mSvAgUxqg68KD2g', 1.0),
('6I1KT1SCGbAaTzTIMqF_eQ', 3.5),
('jO44Apni7iJZVVK4HQ60tA', 3.5),
('yUPUGY9plMaR7JEQVbY0hg', 4.666666666666667),
('gzQpXMHIXOk2bKH4YmCapA', 3.8333333333333335),
('MP3KsGP9Fhzap-SHSyHE6Q', 3.0),
('rDcBeeOHkCg_GlMys-cePw', 1.0),
('W6_-lLkSpigfxpjmjz8uvQ', 5.0),
('HMFAz4K5ZeMXcAhbEmMS-Q', 3.75),
('A3Rahgq3ufx81IjbEfAbGg', 3.473684210526316),
('sZapTgsCbXUMAKzB_rmHXg', 1.0),
('Pi8XSodePnfS1PSvgsZuww', 3.6666666666666665),
('ICq9zgSe4etRlHsbfqQfTg', 4.0),
('MG43KuvGUP600CkYGponTg', 4.0),
('oQwFLohuwcJYMd0WhCph-Q', 3.8333333333333335),
('z6gjzFENiQf-K3lPyV79VA', 4.428571428571429),
('XGnFtKHg92Y763bchY-Ifg', 3.25),
('nPODAdQ8Ct0Sn-2iPHGqpQ', 3.3333333333333335),
('kAxgIZA-kSCKDy6EPg1Eow', 4.333333333333333),
('L_goR_KzuK7JWqM2Soob3g', 2.0),
('Wcm6Jdsgp7Cz-IqdbY2ZrA', 3.5294117647058822),
('nELTGGboc_biCOuA3ZoeAw', 5.0),
('R0KVWeN9xR-F6j4z5k9wXQ', 3.6363636363636362),
('80K2WomtvdMlICk3lt0Yeg', 3.966666666666667),
('CkNvaGIMjPRAjQFFiYtbxg', 4.666666666666667),
('E65KNtDwqZAhvSmxNWPbMQ', 4.5),
('tKNdZoL76N-OFdmQVz1MIQ', 3.7142857142857144),
('yKJCutp4v5K7FZDe6HLMbw', 5.0),
('s90iYcEM9tU5fcyy9Tmfyg', 5.0),
('midS4e50ZmuOeGyNm3aoUg', 4.027027027027027),
('RxMTpj9l3WcN0X6LyggZPA', 4.8),
('SGBz3fRvzqYU3L2DUou23Q', 5.0),
('iQEb2vPjGLZH4Yk687mIHA', 3.742857142857143),
('gOYgSEbE-Z7cqGsgGW3LBg', 3.8823529411764706),
('-lGAiGS-yoHf_chqrooVGw', 1.0),
('PhzWjKSc6ntvF1i-3OYRpg', 3.0),
('SB6gMH-rywdK4uRoALYoUg', 3.625),
('yMdORs_0xY_EmOLDueAjyg', 5.0),
('qunDpa8uqjBgys3AwTeaQA', 3.0),
('HJIaRw_DVI8iPuj4F_rSJg', 3.2580645161290325),
('lmM7OAC-ZRGJJu_ICXplfg', 3.4411764705882355),
('owS1ezUirTkhxcRt863J-w', 2.75),
('__coGeYC9iki1e9MVyOvew', 2.8904109589041096),
('bAWt3LDmod9lDnGLij72aA', 1.0),
('j78OeM6cLZ3OsFlJwwOgpA', 3.75),
('1oBWrKCDvH221hueHla2Rg', 3.75),
('HANZjYn3Q8OqqIcyQx0BLA', 5.0),
('oKWVVqPWVzq5s6nS4O8sEA', 4.043478260869565),
('_CGMFoyhJ52K9kxCvbfxzA', 3.0),
('01HpNrCSLNWbQG9Fv3c4Pw', 3.9166666666666665),
('SD7HTkGYYMZB7FBu6UkRvQ', 4.0),
('96l8E5UgG-n0A4tGUECSiw', 3.6666666666666665),
('HlU-aUCVVaSFVjiO3VSZ2g', 4.0),
('HtNsJWqOCNiSknD1cqj5GQ', 3.0),
('enlAqwh7nHfMC97F9YehNg', 3.625),
('iuvGguPTSW2p42f1TowNwg', 3.0),
('qcfReXd_qCq4H-6WQw-R3w', 3.0),
('aadHOtGp9K4T7IQK_swhjA', 4.25),
('yBBWpwEaRoBeTrb2Zj6SLg', 3.0),
('zmARcxsPqv2WrQ4RhO_zww', 4.0),
('AE0Ois3OTR9IXzWPYD_1iA', 2.3333333333333335),
('ZJt78O7kiKrpIu4RpxI18Q', 4.5),
('G40t6Sm4VtjKDF6Q9CCQkQ', 4.857142857142857),
('Mo3DqfSrDa3jAYkZYEABLw', 3.0),
('3a6CyVn5OcSfifdvbw-P7g', 1.0),
('cJEbTP-MLVA5Y489pCp4pQ', 3.4583333333333335),
('PPYZQDoyQ4Wfg6oL80MVFQ', 3.6842105263157894),
('bKna63JiYuqa76t5eahPMw', 5.0),
('7oJ1B0JLFZ5K4NB4znHsKA', 3.3333333333333335),
('eBWDX4a5iURWg-MA97hFpg', 3.71875),
('soG9o5PqmXilKJHpAB777A', 2.5714285714285716),
('EnkN58MPWLAydD1Q8d1LZQ', 4.4),
('PEIzRB85I_N8KY9WAHORog', 5.0),
('TqzzOCr8wYZQkKU5UD5kjg', 5.0),
('LMl9Z43ZVPh5wrz4LeYd6Q', 3.5517241379310347),
('O9Dbdo2LZut3e8VqIY9gtg', 3.515151515151515),
('gG9pGGqlb5RdEZpTpN6VoA', 3.0),
('QgfzT80gODJj4863Gs_kbw', 3.0),
('t2JFyyrodETCp2sRNPikmQ', 5.0),
('2l5ERVeJkJAj5RUh3iwzmw', 2.857142857142857),
('t8eHE-UF5yjujL0wT42o1w', 1.0),
('3pQxT_d2seD4p7hTLZ0uSQ', 4.0),
('-7JSlmBJKUQwREG_yGuduQ', 5.0),
('b15R48H3Zt82YHH6apuF7A', 3.5),
('BNuPibT74jf8Kp47bZb7DQ', 4.1),
('9mBFC5yp_D3wc5sIeG8smg', 3.933333333333333),
('ztdPwM5MduPM32G3wNkGqg', 5.0),
('VISsrhwaFc7wTQNXYwyRWg', 5.0),
('-55DgUo52I3zW9RxkZ-EAQ', 4.571428571428571),
('Llxjarp8RJgAkjPnFOMt4Q', 5.0),
('CY5yCvzJpkgsQUnO-S1Mtw', 4.076923076923077),
('NFH6lgwwub14W-sR7m40hA', 3.5),
('M7vDDzoPNQDN2FdTcwCq4A', 4.607142857142857),
('-GKEFg_92pp0q842clS_Jw', 4.0),
('2ICzZcgDT0s0RhXhTp8XoA', 3.0),
('hAiso8IQfKW88uWUGDI51g', 3.8181818181818183),
('La_fdJ_JRZ1B7qNBP--C6g', 3.8461538461538463),
('2681MaDdwj12rySfiQ1kOQ', 3.0),
('Yeu3PcQxqQAaqTauq2HoXg', 2.6666666666666665),
('fFGs67RhFZEsSPEXT_5wpQ', 4.5),
('AInVFtRp4P-y5ZHMbD8yhw', 3.6666666666666665),
('EYrVp2S6n7qSQlxXnUI2dA', 5.0),
('r8yBPz9jp1-OHpdW1gIBtQ', 5.0),
('AbFB0XIQpg9uDWKZzPTbng', 3.727272727272727),
('PVVfyLlj11wwa9sjmKQb0g', 3.8181818181818183),
('DgZO2UiUoAJQ5pw5vnJhlA', 4.041666666666667),
('d28TmFBzazMaWHxV-R9c0A', 3.6),
('d-eLOkLvX2JgCwSAyoWzDA', 4.75),
('xAcaPEXU3N_mgQMFtuK2Zg', 4.5),
('knPN-SwM-6NpQRTBz32-vA', 4.0),
('eCMNH1mNWlnHUCYb2jlgiQ', 3.5),
('S5uFVdPgEClFnlX1iSTl0A', 3.75),
('eNPU7wB1C5-vR9fOR6md1Q', 3.75),
('98n8K9brl0Dc8TocyuD1bw', 3.9583333333333335),
('pMF-NXnnBtF2QHtm43v85w', 4.0),
('jt62LAb-fnB2UCrSkDAGgA', 4.0),
('S5MoEIN8RSrbbkBuJIZCCg', 3.0),
('om4ihlBHE_6XjIFsuEgSpg', 5.0),
('Ania9MCwET-TBzVjVJuJxg', 3.6666666666666665),
('yuUqPnoqVSx_2V3FoAbuAA', 5.0),
('p46QYCcZvrjgC7pIFdfyKQ', 4.0),
('nJXy1Odj7gF8bT76oz1LRw', 4.0),
('OrHUDJn6ulcL3DFLJltqzg', 2.0),
('ZMTEZN3zGKhj_YkzxwQZUw', 5.0),
('gVjZwTV3uv6vv0m7nwVfVg', 5.0),
('Wm06i_jsQddrCqsEnrCfRw', 3.7),
('CdCUg3pTo0CivKbD8-Ysdg', 3.0),
('YPxeVGJ0pwlAAFOGRm-z6g', 4.5),
('9kzcadm9FxJBSaWmvHv22g', 3.0),
('J_M3LpQfenoXhL8SI9cFjA', 4.5),
('u7vVZoVphnKCUDoivjX_ng', 4.0),
('x1RMe0CKsp_8D7JW_8AJTg', 3.0),
('RfwXtTV9dbd3l-DeHfX4HA', 3.5),
('j3i9cNSQ8_Rj-6OQhRCt9w', 4.611111111111111),
('8GYzCWWHBWN0N97WsmKeXQ', 1.0),
('97vna7ZzHOXGb9111e4NLw', 3.4),
('FwpdYIL6Y-DjSnkL3cgt2A', 4.8),
('vc_rOPLapOKQ-5N7Ro8Q8w', 4.0),
('eKxOcK0FaV7HYzr1Y7Qm-w', 2.9166666666666665),
('0-UxxxWLz1muOzPx2F3-kQ', 3.111111111111111),
('b9YtCrRpxg0mM2Mr3lFMJg', 5.0),
('PM6wzoHbBwAZU2gRRcxyNQ', 5.0),
('Cv5qdXgo_NXRxF2-JIkpBw', 4.0),
('yrusy5lmzZ6B6d9VNx6T_A', 4.0),
('EhEz34GJVhTW7ZWWPejH5g', 3.5),
('9QpuHleuFAVlNo4lr0cvSg', 3.1538461538461537),
('bW22JWeWkJz9EZh6reAd3Q', 3.5),
('tFFHAdM_lgA6uSXduqVOjQ', 3.0),
('2Fvbxp9SSBj0jGl0Wpsyug', 3.909090909090909),
('9s2FtsFsSwrWI4I6YQtXug', 4.5),
('sxxL6TjvDolUE7GeWBRZrg', 4.5),
('bOq4guZajZee1bn_SVtHtA', 3.6153846153846154),
('py2MLNWkVgmoFrDyIuDxTw', 2.6666666666666665),
('SNsjvOdiw8L82XpC24lrow', 4.0),
('4ZfcCa4m5RWvO4EFzfYm1A', 3.4347826086956523),
('uxRo8UBViaRDynzKVIXWCQ', 3.4),
('JQtbpbrZjxPZC8j5MgMGzQ', 4.0),
('LGUwYfAwe3Z0OOKN_SDN9g', 2.25),
('P8WNbVV_iDGkKfBKl0zHmQ', 3.125),
('-4Anvj46CWf57KWI9UQDLg', 3.0),
('gR1whPDiBcdLeaopBnXHeA', 2.8),
('D5YwD8rMx3f8gUFDp4JeSA', 3.7115384615384617),
('pKVzvdWbA9kqePfbSQ2J1Q', 4.0),
('AjC8av7ejY5qQOISG1fD6g', 4.0),
('m6RaZK8vbGHFCvO4po2XdQ', 2.2857142857142856),
('_ZgaUHBA8lfAIGkaVSSAtg', 1.6666666666666667),
('tDaICPheo9_6jdzfeLCUwg', 3.7777777777777777),
('OvpQ-yp6i5gPXa2m_Shpjw', 3.3333333333333335),
('ORrzDAjxZS6xF-ZdLaB-IA', 5.0),
('sIYSICJxD0ro0cmNi5fMqw', 5.0),
('rM_xdipcViCdgDPb3uKLwQ', 3.0),
('oLvvHzYolS50hH0Ch5vGHA', 4.666666666666667),
('dwFOyFvcgHT7PIRd-2r0EQ', 3.0),
('VV81rOfReS7AbPHGIG_FEw', 1.0),
('ia9WOAZ6eXMbNgr4wvmJ1g', 3.533333333333333),
('IjXnO3aSmaw4Rt1hfoVV_g', 3.5454545454545454),
('RDhkeTICouW0nXXaxaXMkQ', 3.0),
('HBXO10S8-vKkEBTuhdiuDg', 1.6153846153846154),
('ZGnxn9YOWAFRxBQZjlri9A', 1.0),
('FAkkPZS7E36X8GaxdFEx8A', 1.6666666666666667),
('fL1pyN5aDrbINRe-DTrduA', 3.5),
('jgX0e7L29ZiUhh-oD72B_g', 3.5),
('g34Qcj06LmCDhKzksfVNJA', 4.666666666666667),
('lKRXUrIRYTgCjN-ymt99-g', 1.0),
('GQkTOj04hW7rbQCrnYo59A', 3.0),
('SvAoD-toWGUgBuWeyvl_Og', 3.5625),
('buSWCzQMchoDxO4UY8Ur6A', 3.0),
('rol0nRX2zR9s_voNLNdJaA', 3.2222222222222223),
('kItYaO3kwWmPoFYra1ARtA', 4.4),
('K5j99o2s2vFbEbplvGYu4Q', 3.3846153846153846),
('v1qWwxwW6yGsB8oXOBYsgQ', 4.571428571428571),
('b0c0QX2NtfupU2lyN-154Q', 3.0),
('n9DJHwgYflQ_ms8gBU37Wg', 3.5),
('IeBrw3WWUze1QG-puV6kaQ', 5.0),
('opMt3jOshR0CbZOiK1gQGQ', 5.0),
('PLWtGGr4T48HvSd9iOjTKQ', 5.0),
('wmz2suJZKpODlHloKzb1Gw', 4.5),
('8hZDKPiIZxcN32vhGDKxag', 4.5),
('lxOcZ1VZ58nSCFgcunecjw', 3.9),
('HslmVF1pBrbeGHHf5AKAUQ', 5.0),
('JLdbwSyegM7C5x43CZ6WCg', 5.0),
('q1cb99sDlwRVSdbt03cAMw', 5.0),
('Ho-AEMY_TW55MInaG8QRPw', 3.8),
('QAX9PI0-cAJN6x7rrR1Fbw', 2.0),
('L-2BW-6YrUvvfLOUFz1VLQ', 1.0),
('LEXejHbsCwPD5UON90q5fw', 5.0),
('MGYDV-G-srasp0aHOWKhEA', 5.0),
('7PrbZcCHeWtO4Lcfp4Ok5Q', 1.0),
('Zi3Op02me52te1nXbOOfgw', 3.6666666666666665),
('BxNBl3VrzLBAkwpJ3EUgXg', 2.8333333333333335),
('ziOsZacpknqZtc4QFauQRQ', 2.0),
('jodq00HbltESTzcpy1cvuw', 4.5),
('RvKusEHmXHYcGCCeHF0udw', 4.0),
('bD1Ozf99dm2RwpB2Nt_m1A', 5.0),
('Lf6YvwErt1qrhHqMHRB0jw', 5.0),
('tjtim_GnT6uCNKb5McPxSg', 5.0),
('ys8lfhJAOrkR9uExONf_uQ', 5.0),
('C16QOoBorPQwN1oeRvhQmQ', 3.5),
('Y3qLXW374oI5Fxku12hSbw', 4.666666666666667),
('T4tYddq80sMKSHyYDl1CYw', 3.7142857142857144),
('OM1hIgL5eji7bleyqIhA3Q', 5.0),
('LnzkE5ubITLbKYJF59VB5Q', 3.411764705882353),
('J-fY-LbrJPzE4pZeF80u5g', 3.473684210526316),
('EQhvDWngsoGtBXW8TZ9saA', 3.4285714285714284),
('kgUlckbRyHvMD_78NoXE9w', 4.866666666666666),
('O-frog8VhICKAT0grMKiwQ', 3.0),
('vMrgHrPV6sidvTMQLyJtXQ', 5.0),
('ZQfv1KsMzPAqQGbTJ0fWdA', 3.0),
('5jRIlrBqRJIggaadnOhT7w', 4.5),
('b3ptYtDbp-nj3bQgmlTHFQ', 4.0),
('ERwq_cB4pzp342hoYiFZaA', 4.5),
('llsbSKHnzAUPByQwzOybIA', 3.7551020408163267),
('nrCnIqXOIypH0X-ziaFOAQ', 1.3333333333333333),
('gwQD-thvo4QEzfaMD_nYuQ', 4.5),
('pKXL_tHPdaBSpFbktHyD5Q', 3.0),
('mT7tBQdGWaF9xtzNFCIXLg', 4.5),
('CuXjod_27ExCChF2LCg8GQ', 1.0),
('SDpBxIV969RLb96q9tpiuQ', 3.6666666666666665),
('httTXmhkKoaqG-24Igcm6g', 4.833333333333333),
('3XKa4GsiHPv7MnUn0jZSqQ', 4.25),
('ttc3_AtKQzrFlFdfsS0-zg', 3.5714285714285716),
('TGo6H2hP6myp1tFgDsbP0g', 3.6666666666666665),
('HKkjRr54mqohea5V1eBh2Q', 4.333333333333333),
('o2FbUvgG9MJIxYo8SIH7dg', 3.7),
('vZwK9jyuOS4zmUbeCnlVNw', 3.0),
('zcCEjj_IjSBkLq1UPLizww', 4.625),
('jnr7o0AbTkOP1xa01-Y_ig', 4.25),
('w8NFFDomI_JFaTYGHzGsSQ', 3.4285714285714284),
('fuQxqZ5rHYAjW8k5XWEMTA', 5.0),
('exIZyA7e9dukrjPP_X8xEw', 3.6),
('K80W_9-nCIvYkhoq-b3D-g', 4.333333333333333),
('qBO_9cuGxjsvlGGfUuIz4Q', 4.0),
('_g2mH-5oOIdHJ_5Q4NqRog', 1.0),
('TkO3UfWZwwfZHMGg_qI3mw', 2.0),
('37FUZQAVQNT99CjxX3-hYQ', 3.5),
('5HAWxQplIc2mgMQgd-bvqw', 5.0),
('Xw5F_nINiSR8tpl4z5T5YA', 4.0),
('HQXltM6VH8c1Y35tfMlhTQ', 2.8333333333333335),
('SbrDl9B69acb3PEiTCG79g', 3.7142857142857144),
('jJ92jhRJbpsgLYv-DlTTbw', 2.0),
('pDiPepbuk1jf5KnxoIWfvw', 4.0),
('JqrtaUh4hkt3plIUOtA6PA', 2.0),
('DLYdsGbx6fJfoIxXS0nQsg', 3.5714285714285716),
('H0tfWQsGjEBuhXD4WUtpHw', 3.7096774193548385),
('KC_xSxWjWUVEznSX8ObaRw', 3.5),
('J9SB47g9nJEoJjiiP_6EUw', 4.111111111111111),
('dWsfB2xXBveOLnc2OLFHSw', 5.0),
('vkge5uvm7sQiUvJ-QaB3WQ', 4.111111111111111),
('dWS7ISk4GIn8Pv_FuHirFw', 4.392857142857143),
('zKu7MVzQnJa7dqc0XR40eA', 5.0),
('cODORiLFa8kdeAh9zTBdPQ', 3.0),
('EhcEl4yFdVAL-9BnYLQVpg', 3.75),
('y_pCBbJYTof6_hbR2zA7BA', 5.0),
('-9da1xk7zgnnfO1uTVYGkA', 3.526315789473684),
('q1c8IsQ-QKqxwEv6fw-gGw', 4.25),
('R-gsradh-0niyke-NYUuJw', 3.25),
('6eDGsTJi-Q4hqjsFRsYkVg', 4.666666666666667),
('2yPRCQMd2u0ka7r5IdITBQ', 3.9285714285714284),
('pveLYTBXQh-WjVJMBiWucQ', 4.333333333333333),
('H4LTr-24a52WYxT_pjkBig', 5.0),
('iY7qj_LPKnsDNrCgdzKS1Q', 3.6666666666666665),
('E0rKCurqwmTbZ3M08w-O_A', 4.0),
('kVcI-nQsfSQ0ZopeiXzjHA', 2.0),
('riGS1XOka4RmIldYE57DQQ', 4.333333333333333),
('D3SHJjbB5s5-vEM0SHySVA', 3.6666666666666665),
('p0y3sdXfzO_QfhBPhtx_3g', 5.0),
('6J0mGxAaPuHAPj8ShjOCag', 3.2941176470588234),
('TcBM3LCFnEYZubbD0k7Z8Q', 3.8666666666666667),
('BoXAHmwsZOqI3Lb2mZb0-Q', 3.5),
('M-OiishkFwb9zvpnhi3jOw', 1.0),
('2gS3TEXnA9d_gEcIaHGYDA', 3.0),
('EqXQhu2h96hEPKJEpDZaCQ', 4.0),
('hOBakMVaLFBoQzrm4_ftGA', 4.666666666666667),
('zaq6CLKY0ZiohSRVgadwqA', 3.6666666666666665),
('xT7RQksnkdGnDiu9EiPsWw', 3.7777777777777777),
('DA9h6cIS3-88ejmOoswmVw', 4.0),
('eRaX5PKYV_H9DZYVcX7GPg', 1.3333333333333333),
('4E8bpHhysXsNurgTRTlq_Q', 1.0),
('LnFIWZM_l__4t8Qxj3pnOg', 4.0),
('eWhvsl5vNN0f2c4-kcx8Jg', 4.0),
('ilJ8JTwyAMyBpj7LXQDgPQ', 2.0),
('LZ8m_JCo2UxgN5rAlbEE7Q', 4.5),
('2UlQ4xF8c9OKRH_wyTLiIA', 3.0),
('XBxmubKfzh3pkDHry6kskw', 3.4166666666666665),
('A4GXu4tNHwcHb1vrd9nW0g', 3.6666666666666665),
('H3_ucbHZs_F5BNnWe-dryw', 4.142857142857143),
('QZrVgKxdD-FH4cHleS0WYQ', 3.8),
('_6HBDrmVN785UnoKe1KfmA', 3.0),
('C9ItkhVD6iR0YrYg7-jVtw', 5.0),
('qAfHGIKLCAZp8nB0agAmWg', 5.0),
('zOgpx8qLBibIIJ5uHxUlgg', 5.0),
('8PCS70R9TbVyy_LXEnqk5g', 2.5),
('gNJD_wlEBk8cEVu3O6HDWw', 5.0),
('0aeJBDgtYd1TXiC09tc15A', 1.0),
('6CkttYFeiKbZtVAJq7oHBA', 2.6666666666666665),
('3vI0i_k-3i0uKOGaPOyb2Q', 5.0),
('V5Xsv_fxxokcSRQZ4u5sdQ', 5.0),
('aqJizYMvNspyxeL01r4Hrw', 3.4210526315789473),
('XQ_nFlUasT_NYksIHDP-kA', 3.5238095238095237),
('KjYB3lTvwiNHqwAOB5XKVw', 4.0),
('9eXBxd93gSjW3Hd8dXgE8w', 1.0),
('ZTM8QTKgPpbHo_yYe4oFlg', 3.5),
('E1mNGJmEWt5vC35wgisy2Q', 4.0),
('ENiL4oCOhEN8BPoH_ABlLw', 5.0),
('AmmWvIj6Enudd_c6twhprA', 2.5),
('TA86D8aHueRu1tIag_lK2Q', 3.375),
('kjZtjQkguETdO6etSfTc0g', 2.888888888888889),
('EmFaB7UudLiPcBT0ydRo5g', 5.0),
('-3i9bhfvrM3F1wsC9XIB8g', 3.857142857142857),
('wpjUuGYbwr9kyhJSIHKW2g', 3.6666666666666665),
('pmERMI7gfmhnW_S_-BnKYQ', 3.75),
('4Bq6ir9yNVZovs0xf1vfIg', 5.0),
('O9tK7nUb6ZXGHqI9Js5nYA', 5.0),
('sT3_zEgSZeGzrytxmyDADw', 2.0),
('JUtIdc2F22ys1aOi86wM0g', 4.333333333333333),
('a_TVmbLLYVk91lNlReDP1Q', 3.6),
('ixDRZ0wxNDlKSwyM20b3ow', 4.0),
('lloWukZA-jX6kojckAMlUQ', 4.0),
('mnEO5OBByeGZ5IR8rXbsUQ', 4.0),
('9Xec9d55DdOOPw-B6FOcvQ', 5.0),
('Id6EbEIHJ-na4s0yx7UXHw', 4.0),
('NqjHasG4tnxukvesw4dy0g', 3.6666666666666665),
('O-6Drz_aTmcRMJyiXKO7IA', 5.0),
('RWB10T9xTL6whXoLBZHanQ', 4.0),
('U7MeGRAYfvirqFdqOdjVWA', 5.0),
('V7LRNklGj_YAOIU5HSDzUQ', 4.75),
('aLa9i_QJm_H3MgkrnB59Pw', 4.285714285714286),
('yDzwf1cCtLcEor8Y79z4bA', 5.0),
('1u6zz0xpKrIyjL0hljR2_g', 4.0),
('3Kta47FbZx_APqByZ2IRkA', 4.666666666666667),
('KYNd_nhbb4AMImzGrwGjpA', 3.8),
('Y4JCjvQWPUKm55rdBwBnpA', 1.0),
('vw50LfKLSa0fFmzgUl5c9A', 2.0),
('HUnR9t4WENOx8lszRH_n-Q', 3.9047619047619047),
('BHxgi8MKRNdFGb-8kF5y7g', 2.0),
('H1J7BBq_rcx9Nl6k9ee42w', 4.0),
('VMKZH5gWnmZ3xHEl4yDPwg', 4.0),
('v7g8xGYQ3DyDeU-3cmGWcw', 4.5),
('BZQe0xNYnGDH3lLvRhGFvQ', 4.428571428571429),
('kRYmgr7kDV3qFajF6jcdxw', 2.0),
('g97c11cYybj269ZhFJKQ8w', 5.0),
('_uvUFlizPI_V4GS7t5u8kg', 4.0),
('SyDLGfIQ4GFqwEk41K3HRA', 5.0),
('KNqrb4fbFWaqDRdZZmxduQ', 4.5),
('s1450pOByJW8KjexugG1_w', 4.333333333333333),
('VrNcMg01LNNqWJo2KoklOQ', 4.25),
('3Z1K2ezJxLdq5HBTZoI_iw', 3.3333333333333335),
('mkCs-Yfq9uPF7nNpV4W9Jg', 4.25),
('BFdUn9bY1KfgYCTDvcwvLQ', 4.0),
('IAN2pNd3pWCBQvkj6rzmCg', 5.0),
('YFwhEgu6mOFkZ_fqRYmzhQ', 2.5),
('MNl63nVq_UJtj4RryrAEdQ', 5.0),
('-VBZn4i4crMhi-bn-jR_cg', 3.0),
('ao7eQKhopKM3gB7nJGioTA', 4.0),
('oHFNwZQ8G57TIrdx14-cLw', 4.5),
('y9ZhenRSG_CsIjuMlyhuCQ', 4.8),
('1Q-tjPYDBaFZJouj8Ynl2g', 4.857142857142857),
('OnG5xf6-lZebJyfKj4qVAA', 1.0),
('LUvjfBuGZIFNLhJqa_MRbQ', 4.0),
('GnEksJFS5tHPY094hVn6Pg', 5.0),
('L09TeX50dcT2vCoMlKxNFA', 5.0),
('U13E75oU3RwXRnu_1lfw_g', 5.0),
('kswHHWKiuq7nKtSOeIOk3A', 4.466666666666667),
('iz2DZtQ2ogafRQBMpX-kpw', 2.0),
('c-To26mj7SklVDr6JTPwXA', 5.0),
('RvUoKzJqQBnw7nKw7LT3_g', 4.75),
('JeVupOZlVO-4EIxuBBw_yA', 3.5),
('-dErbI4sHSkRz6oxjy9L3g', 3.789473684210526),
('ylIrzAqBzN1TLf4-ZNvBcA', 5.0),
('Gb9Y_f1xslY1mDvvHBXaLg', 3.372093023255814),
('EyzGqnv6-mAaeRBFc6xvtQ', 3.0),
('Kog6_iJ3wEumIV4U-wqMTA', 2.0),
('EveidIU-Yb_fjAN2pmx7Aw', 3.0),
('pr2GTWRrAYzym05EYDEVVQ', 4.0),
('8WRSfST4mNrDxni4AaU3iA', 3.888888888888889),
('qDyLTnp8EfC3wYLuXH03Dw', 4.2),
('xzyJiETXA25Ls5J3JpDp-A', 4.5),
('ehTl8VejBkidaXsOwQPG2Q', 4.333333333333333),
('uzUi7nAnryHJcZNxMCcoUA', 4.8),
('aUkgUZXklBLCGIlHBuMO6g', 5.0),
('9WTQULo-NE6-ekOxMY6BBQ', 3.0),
('iZRdIbXlbzGtN3qwd4zaqQ', 4.0),
('YmVxeVobzQrgzjr7cTKZLA', 1.0),
('PxTG5v-gjolwQKviX4gS2g', 4.5),
('ydo80FiWVTO2eZBSpaUB0w', 5.0),
('Ox99-mEMGzT2c0tS30sDGQ', 3.5),
('j80fhAMsFt1hemMNBs3yEA', 3.25),
('iL7XaCj2lr8IUMMZTsC5TQ', 3.5),
('bVEFLzdMBu63O00sMukolQ', 3.2),
('pFOb15aansCqmeMIDsGTjw', 1.0),
('gu_1-o6fZTJL-M6rbQf6mQ', 3.6666666666666665),
('h4RPNNmFZPwJXQuFe1M9mg', 3.0),
('VJw_AQTr8R4ecAiD0hsn0g', 2.0),
('66KALehIbbc75nLarDGspA', 3.0),
('8Hs0aaMQT1TiwyAZAwm3yA', 4.0),
('6FFFFNZLeeHERUs1MatgBg', 4.333333333333333),
('D7ZAMJcKhs6mS_Ky-8Sprw', 4.666666666666667),
('2NfcRI9UmKOH2Q__TO-ZEg', 3.6666666666666665),
('9j6jMQZ6BEJZ0fEFKb8oAA', 5.0),
('G-4c_G7iXLbSVuMxa5t0IA', 3.25),
('6hLgsQIjCrw0J_afZNADVA', 4.333333333333333),
('PD0MvfvLkCUxV6TVpzwGSw', 3.0),
('zk5S8XLKQeQJo4nqf-uGRA', 3.272727272727273),
('tYE4-Z9rSVSst4GYHN2VQQ', 3.0),
('2KNjkDvbdYwEs7xcTO9eQQ', 4.0),
('YTo8HUbXmifjIT-hH1JSwA', 5.0),
('ZW_vdCnGUkqjogDyk7sKWg', 1.0),
('Qtir1B_R9G_9uiINbr_wrw', 3.142857142857143),
('zdXJFWeoB0zT0jK2a4jsdA', 2.5),
('0obrr0L01fZZlTW3fMnkLw', 3.125),
('HZBr6aVDDgd_9rcefVLtmQ', 1.0),
('_gF1ODF8yDxsanmuB4isJQ', 2.0),
('DgxP_qdE0-OChQjiUGHC3Q', 4.666666666666667),
('qVu2NwMPbcOMxa7k7JcC-w', 5.0),
('oJcH_BKFGrbYaa_qF2616g', 5.0),
('BWx0Ff7Y2rq8mo1EQruJ0Q', 1.0),
('L5wNpczkMYCcOgz0CrxJIg', 1.0),
('Pm6vYksQ-9_e5miauwAIaw', 5.0),
('XqqmYmSIFX_TJZ6A2KOOig', 3.6538461538461537),
('1yAa95hjob9E7ii-J0d_CQ', 4.25),
('5njNcjI5XZBrw1lbU3Hmsg', 3.75),
('REXfsR_7C-k5peomdy9csw', 4.333333333333333),
('ZVJvlDWkmxtIsxISJgNuvQ', 4.666666666666667),
('bZF26YBz9xLDEljnm8OWmA', 5.0),
('LMf8egc-mflU6PUeJ6gBuA', 1.0),
('ZAoVz-xsJzB2ScEO0fYNiQ', 2.0),
('46wwNRiBGIAJuPlk8TOP_g', 3.923076923076923),
('gdBzUGu-dMUBdQfQsntx2g', 5.0),
('edEbC4fEPqq2BhbDaFj6Yw', 4.25),
('5zXjYEBUqT1QKRgBJltaaQ', 3.0),
('1Mo07J-hO_z7Yu-FvjKGeQ', 5.0),
('SY41K848TzGOt8noeOt8_g', 2.4615384615384617),
('WVxud7Ng3GBTi8RaxabF7Q', 3.2),
('jbNIez0TKU5XAku0O6c5qg', 2.5),
('LGnqkKdL2qyQpjsN8mmGDw', 3.3333333333333335),
('YWejdBL_ou0cDEW3FtKHJA', 3.0),
('PRzhBgw3truNA6qa1U43vg', 3.75),
('sg8dMmLPQ3KMzRcm8vo2gQ', 1.0),
('4psCnnwK-wpKwS2yJSxYPg', 3.8),
('HWI-OfJaTvOMX0DDB8Bq0A', 3.5714285714285716),
('SxScGOVkxC8-jERtO-nX0A', 2.8333333333333335),
('zUPaUdaQuO52Cq_y82w6xw', 5.0),
('fJwNK7CZkrvS-aO4B7Kdew', 3.6666666666666665),
('uVDJlnPJNx07_jDqI4jgYA', 2.923076923076923),
('89WVPgShXMDkcfnBx3A_Eg', 4.0),
('eiuqLyHoZvpZMwFAiL8hfw', 5.0),
('AUFzna19uSb7amE--e1ETQ', 1.0),
('y_XgW02VKRwDKGhHq17yuA', 3.4615384615384617),
('JAOFcDoMEeoDw3BN77bcRg', 1.0),
('kirvWvB-D6jvtc_80eoZ5w', 4.0),
('pDH9v2feEuAQp66laptwDg', 3.0),
('pfjA86g0yfK9QW9zZCGL5A', 5.0),
('HX75Jo7d3-IRs_1zS19iww', 5.0),
('z0C-fQYK5S4aq31HbEbefw', 5.0),
('9hh1M-3aDJZVTwwYYy9AnA', 4.2272727272727275),
('ArwjAC2m50ctfJZdLV_dZA', 3.5),
('LJhpzJBmE5S6KGxLQGMRUA', 4.0),
('gOFcE_CxA5KqoywVU_RiYA', 4.0),
('axbFJyPrzMSz8R2OmgEjLg', 3.0),
('ibuFkg04Hc8MkRy6JRTY6A', 4.190476190476191),
('S0b8_tFfOJjfERP4_bPMpQ', 4.2),
('VZ0UaYadWHaU7omJLZY4Bg', 5.0),
('cfclpku-7qRoI1eUv9QFzg', 5.0),
('slLwDsOZ3IC7NAmWlrtGUw', 5.0),
('CQzSDWcStjTeP1p_m3L6Ew', 5.0),
('QamNEIX5YRAEXoG858roDg', 5.0),
('50NGyLtJgNkGpD6f9wkTiw', 3.0),
('hU92M5BYJzEmF0pvOsGoUg', 1.0),
('B856VSGCvHAB-mil7JVprA', 3.526315789473684),
('MF2pzaL-nGhtJ_j6Dhs_2A', 4.0),
('cHdSQISeMpp8HlCWgNb1QQ', 3.323529411764706),
('SIf5rJUlAa73ZlDCtNWTcw', 4.04),
('z70XfS5HCVXTsZuajc00dA', 4.5),
('W-RUiwySfPQudDRFLfdaBw', 4.125),
('5gtmVj_NfA8GQoMRLSGJFA', 4.0),
('SHxuw7urUxpAefvf4b-lDw', 4.0),
('CCo5-BJKhIFxGLcOxCoFDg', 3.2),
('MmtUyWh6jtxLBVjsYXh2eg', 4.666666666666667),
('0F-9cbwt_4qr2ccpbzndLA', 3.0),
('AR3Pewo1OJiNDSgBvCmbaw', 2.0),
('6mMk9hO_RAbdGMEGeg3oWQ', 3.7222222222222223),
('0FUgTydzq45texDcDUCLag', 5.0),
('2Mm1w2x5KqNBoV_WvY10dg', 5.0),
('nHObhOQ1ssPjZclcUlOUmw', 3.25),
('61u3vzrb9XW7UXmGrVAx4Q', 5.0),
('lCSNAoj04FBh403R_B75Dg', 1.8),
('LEr8vS6PRymCg-SJHR7b_g', 2.5),
('dJCQxwbw0GdVf59cuIQzng', 3.6),
('j-S8HA2HMZD2yuTMpax-Lw', 4.333333333333333),
('BGKO2S8XsjKtjFgO5Kv8kQ', 4.0),
('lvzVuPBCjPDgJS8AmBpaDg', 3.4285714285714284),
('h4Lx5A52Eib9qgzHrQq5ag', 4.0),
('ak2sXowzRc4aLq7mMDyXGg', 2.142857142857143),
('t3fpherOTOeSFVHIZ2Jnuw', 3.8333333333333335),
('2T4fGWVymlwAZTm_jimG5A', 4.75),
('XshE6w2DmJ7F6PBOUwQB6A', 5.0),
('hUv2N9Ra2Z7Dq1ThHgnlzA', 3.3333333333333335),
('5LLitCvCow3piw6o6WQkLg', 2.7142857142857144),
('9BxKiodYBD0n6ZF9jTtAsA', 4.090909090909091),
('iyR5YwpMnOCmbfvk4KKczA', 4.0),
('WpUaRaSFxFsYN6KTUAUOlA', 3.0555555555555554),
('5YXcnjNQ1PsJK0GznDBH9Q', 3.652173913043478),
('pIw1kp4u5hedz4JEbHjDrw', 3.6666666666666665),
('_fGysU48tncAdUlJHbMwXw', 2.75),
('EVNwnf5tgtLo0NiTDmM_hQ', 4.875),
('H7_QmS05uaYPOuwqnB1Idw', 4.333333333333333),
('dx5C1h-DpV9xsVOqAyWoKA', 3.3333333333333335),
('S4rtxwJXeLP4BGi5lakoYA', 3.0),
('cHLYIy0c085b-8A5WAQyqQ', 3.0),
('VHw5kY6jq4FbYyJaZINUtA', 4.0),
('ilj281FeNpG55W8syo4Yeg', 3.0),
('FcPizV6LBFNe_Y00EQHh9w', 3.6666666666666665),
('n6C9eTN5ijw9DJRDAW7zjA', 1.0),
('XjyneOR2t_o12hSt-MncKQ', 3.5454545454545454),
('eI90q4K14K1Xpv4KWZmGkA', 5.0),
('ZLWELuKB4MnGQG6_KgOjig', 3.0),
('Rm2hmvlpnQbDQPoK6XoFQA', 4.0),
('0b3FXt-EgiwMvS4scwBKeA', 4.5),
('D3S0haD7fHYS2O6cEajGbQ', 5.0),
('35E-M84E2dmD4ws2I5RYfA', 3.8333333333333335),
('QAteXiFPrLbJiyxHbHgfow', 3.8),
('8Y2ZQqfR2dPzciLWwg6F_g', 2.5),
('35vuYenuJP_4qsqyNPcu8Q', 2.0),
('0AlnetQ_-a4f7kY0Sker2w', 3.3),
('NE5ayYtJ_r3MNtHo-1VlpQ', 4.0),
('YYImewimgxLFCYPZrV_pHA', 3.0),
('1aNHDx4GD9fL1ltPoYUQPA', 2.8),
('U4RYluHkaejpkUALuk1_Aw', 3.3333333333333335),
('J8Gf-_GuocLye9AIzQybxQ', 3.0),
('fm2npkf_1BNUPRZQbvJA0Q', 3.3333333333333335),
('sy8XAzG6XIndfcNg9Z1jGA', 3.6666666666666665),
('WC7BgfeWy99jVdXF_6Lf0A', 3.5),
('xPL5qbKNxzhcyUAs5jwzPA', 2.5),
('t7pPGfAFNJIgnoNU8exckQ', 5.0),
('DhrpQHpxPGpvJO-Oh0Qlyg', 4.5),
('TzJdlQxa2kYjNoBCtLH26g', 4.0),
('rt_xL_eVYxBOc-5KtIWCfw', 1.0),
('VI0pu9BR7m6PCrAEhP542w', 2.3333333333333335),
('IdJaMp4NyZ6sQQiS05UEUQ', 1.0),
('7Q5aPLtDrWDhWPlFRkrYWw', 3.6),
('lEeQGOPZXTQUs9z8z2G-eg', 5.0),
('pD3wce41cb3RumjukXp_1g', 5.0),
('PMlhB4fRKR4jvfTL5W7dhA', 4.5),
('qCNZXu0nA1m9_qQDSY9bfA', 3.6),
('qQiHdR_B9YxaIOcqJ876wA', 4.333333333333333),
('QkhtomJ76_O8HnTnEQ8E-w', 4.4),
('gWFbfassLbjkd7nfGPCu9A', 3.6666666666666665),
('0wZZyqtz4xejWDZlpm900w', 4.0),
('xktpMS75aseQTb6BOHeMkQ', 5.0),
('gurcmVDESVQ8X20xpw4btw', 3.75),
('er3oGeRMf1op9yHEGK-3yQ', 4.166666666666667),
('SKeQ9pXREz7dkFS4qWAgdg', 4.090909090909091),
('798YPJIqnMmz7qgMw183ew', 5.0),
('H65tZ5JC0FhySc5uOwyERQ', 5.0),
('IKQXiehRSPsYzoJvqeWnAw', 4.666666666666667),
('KC6RQlajTSBY-VrZeme2hA', 3.2666666666666666),
('bOlvSUuZOj2uc7JQQlgL6g', 4.0),
('d2HskPwyoOyUFwhro3JWQQ', 3.2),
('B_4OUzr0q1jpOsgi1Wh9vA', 4.111111111111111),
('TB8nT_Dy1Pib3YwCwyxl3g', 5.0),
('wUh2gOh6NJkJY2XHjpS2rw', 5.0),
('7wGm0gaIG01i7Y-kRGP2TQ', 4.0),
('a_olzUPB8gf_MfHGJAw5Fg', 3.0),
('fBDNKIGniAeKmMnrpL7byg', 3.0),
('p_qC1Jj5jGdZwA8LpyxKEQ', 2.0),
('-dV1Z7attfgdpyNpZCtoaw', 4.0),
('IxZzwj2iyrylLHLU_vQDhw', 4.0),
('RrE2GIhV1q3DjDwZ3yfuhw', 4.0),
('UPohpANAGhikEZ4_091HPw', 5.0),
('I3SKPhehQ15i04KtERNzIw', 5.0),
('BKxQJJAh_0Jtv4MqxbjkMA', 5.0),
('7VPWQqw9_tUsuRwV7OImiw', 1.0),
('BvZ85YMHrrPK_QvkTX9jEw', 3.0),
('unNWv0FkF5Z65qJ0AOhfrA', 3.6666666666666665),
('bH32TMCOWTsYtFLZRUzeuw', 1.0),
('xY9Y6kN53lcSUySFPajZXg', 4.0),
('bUSb_T9tAn_zY2pwg0DVpw', 1.0),
('CgtezsA6IDqe5GmpjZNcAg', 5.0),
('MWZPj5e6K0etFxMTjF5v6Q', 5.0),
('aTfF-9Lbv0rb2uhmh5eMuQ', 5.0),
('m3921CB7hzyegyfWMNW_uA', 5.0),
('gngidXb0CIwbGZ4vuACJLA', 4.5),
('xMCvTyk8xif0AWHz1i0pxg', 3.5),
('vk4PEFt12PZQzfmN7alpBQ', 1.5),
('6dggBjtUBcmu17W8Mkgsdg', 4.0),
('fmww-Gf2LnYfL40eezDDEA', 5.0),
('X6q30hy_zjZeLOzJj5KgUQ', 5.0),
('0qVDqCMquxuvQRKyUkoADg', 2.0),
('-KPZpkZEuKaMYQXHWSTw2g', 5.0),
('at6kTMfjaX5mEbIcWHQt2Q', 4.571428571428571),
('iWVEkE_ERqCqxULpdJbncQ', 5.0),
('C2YRjTezIGFYVO0JZoA-fA', 2.0),
('v3xoEvqs0uN0AaJi3lW9ZQ', 2.0),
('xNL0O_wB8IM3Wij-uNnTNA', 4.0),
('m1IVpXClMox1VGw5hO2LhQ', 4.08),
('zXLoogjo7oJCEq7IuHjnaA', 1.0),
('ZNWV2etUy2rPU8gCiP0-RA', 3.0),
('mu6xEHThck91bAyD38XuZQ', 4.111111111111111),
('Y4brP4BAPJVcX4SxXzQEZA', 4.333333333333333),
('8WODiZ6jg_kT0GmIbVqjyg', 4.2),
('CRodeb83cJiBNnPA6XGe6Q', 4.0),
('fETISb3fW1AxxxpNtXdb5w', 5.0),
('tCRK65LrfCEC1LzFS8LwvQ', 3.0),
('DM54-zx4pZvuVE0JAcqA-w', 3.125),
('Nh9XPvC0zXjd-VfPC90F8g', 4.75),
('EbRGFK-v6A1_7UFXAdydEg', 3.8),
('-dJ6_TOaGy289si_gJ4KTQ', 4.0),
('Oo-C0qhDd3Kx5h2zPPVgtA', 4.0),
('NuYtBn4ysHFzfVbtDGH1fQ', 5.0),
('O6C7BlIIoA-1_0qmet6MVA', 5.0),
('2u9kzvBanpQ5JH9CT61TIg', 5.0),
('ZUECfVKbOZMWTnbvz9yelw', 2.5),
('Mu6wz7_d6OBgRqkl4_NaXw', 3.4285714285714284),
('8OuhgVDjoA1qcfTyy2ZIOg', 3.909090909090909),
('TQ1ddpjftd7-viE_CV8dqw', 3.176470588235294),
('sVt7x4X4nFcr2uTfmZ8GkA', 1.5),
('-xuYnB-HwZIQJVzRXnVUPA', 2.0),
('EjggdHQ2dBNV9dvh9LEZxA', 5.0),
('418W7Ufoz3eXSt3A1wsxOg', 4.75),
('TdP3cBMj48ebQe1Ej5Hy2A', 5.0),
('fRddFFEy22uBOLkKMGWKVQ', 4.111111111111111),
('g6lcGZ5ryfei9hG-K-uAUg', 1.0),
('AZDWH9VYor9iQC9sKbEcdA', 3.2),
('x4RzXDLErZHF3a7w_8KiMA', 4.428571428571429),
('ey13ct12u9so66R1fiWhrg', 3.5),
('NMI-8KI3WLuQ3E4xW0s2Xw', 4.125),
('NUGQBB7rO7hlFlYjAdm_Tw', 3.8333333333333335),
('ciDQWqycD55Bv-vjq95YXQ', 1.5),
('rlhj7U7HxC36TP0262GKZg', 5.0),
('qVIjvhzUdEUh-wnSqUAemg', 4.0),
('fZ2U15YNQHlws74Q0HJJTA', 1.0),
('0weqUqKDUuSF5pyvV0vL4Q', 3.0),
('aFswSvwxe5sX9mXd_-1zoA', 4.25),
('AZPeAaGPHlEnJBvK3vVeCA', 4.5),
('Ux6G5UYWig8zua7p61IuVQ', 3.0),
('ZUilCLQ5jw-DgfJxRp7jiA', 4.0),
('s5d62WdoTZQDQJvSIRon3Q', 5.0),
('7E9Oys0_dhWHaTwIhS6XTw', 3.6666666666666665),
('raq57b9-P5R6ejOuwaDyXg', 3.6666666666666665),
('Q_CZIvnsDHjpls-EPzzG7Q', 5.0),
('Im7h37xx35_fXRhWh5KgXQ', 5.0),
('LXv8RdhhvR2Cev9TsKmkfg', 4.5),
('NzqC5Rf5G88c9pbrt5N34A', 3.0),
('_Kplrc1bDTce2Pw3xRr51A', 4.0),
('d4CAVfujwoKdlm8cUgIlgg', 5.0),
('CzYbC62UgKtyGZPPQOo_LQ', 3.6666666666666665),
('H0VnCBlTdugRSWLxVs6TsQ', 5.0),
('evCcKvCe3H9bCQE6dFy_-Q', 5.0),
('EjsSXmGONSH0L3RFybbARg', 3.6666666666666665),
('qCrIUn7hu_igR3-huAI3LA', 5.0),
('Pi4zq4yimuTbvMjnUhuDig', 3.0),
('88Y0RiIM3UGVlNh-LpDmXw', 4.333333333333333),
('2M8uPYzCfeMDIStJ-F3iJA', 5.0),
('W3om4LwdjWfUY2uXEVQZzA', 3.0),
('ucrKQ-1T6RmFtJi6vyBa5A', 5.0),
('PcXC3Hs0Z1QAfkjGmNHZZg', 2.6666666666666665),
('YjzHJVRtydizjKLyEKfadw', 3.0),
('3UA89mI2pN2KphXN3QXPIQ', 4.0),
('BDDK2L_yDsQQJItEF0VrKg', 3.8),
('zcp42G-kVhNOJIZSXjlbVw', 2.0),
('HcKQVotenWwFRSw3Eyz4CA', 3.5),
('ZRZCGSbYFKJj_16gA7d-Nw', 4.0),
('aPtrcYXwSueHr15Ng8eg8g', 5.0),
('cNC1iVcgl5YHmOXTvN5zIw', 4.6),
('v-BcxvSmHTvPytkhc_4loA', 5.0),
('xsAQOkCljeBe58q2s_8nYQ', 5.0),
('JyY5Bv3GKzAiAdDYqJQOrA', 1.0),
('z3dh0m7yqi0QeEx-K1nPsQ', 5.0),
('Zuop-axbyA7atet3p26T3g', 3.0),
('soGTZwHVWV0ihupUI93eBw', 4.0),
('7e5tRLwO1EiAkO8V49JZIQ', 5.0),
('gbueQof_JlLs-poUlKJKfQ', 5.0),
('pWjDlvnuIMYsIOV_pruXSA', 5.0),
('sTyEgzs8rT290lPlDFAqlg', 3.5),
('14Ue_IlC0RcakG6bIuouqQ', 3.0),
('-Sjk-15NTj_-FgA9W96tJA', 2.0),
('KcgKFL2sPnByyJhV9sSZew', 2.3333333333333335),
('9RD4O4VtYPRPC_qII1xWgg', 5.0),
('mndiFHjheScZ_VQGx__XUA', 5.0),
('pxTtyj_t26Idb5-eGf8JyQ', 4.666666666666667),
('MVaoMpdz9VZzmWVf4SutPQ', 1.0),
('oYe4bAa9-oKdkNZ7y0irSA', 2.3333333333333335),
('G917VZT12pVqinRFdNpFlA', 4.222222222222222),
('5DkXsw7s0oIFNWhZ6LGvHQ', 5.0),
('7dZTkHJF083XMnDcx4QAQw', 5.0),
('dnf4oYOUU873X26bVWhfqA', 4.0),
('2rQyMc16Z_G_iNrlMxKUbw', 4.75),
('exNkS04nyrSLVKpSacZxNw', 5.0),
('fBdD69y-O15tDxy2yXZBUA', 4.2),
('uvav-UwHwFGGGAxAMDECZA', 3.0),
('XZ2yapjABSZzn7iGWNk5ng', 2.6),
('DSQNYvzwZqMsMYHjC0YV-A', 4.0),
('txa6NWIe0Z2B88DgjkI2iA', 5.0),
('lbZcYtIOmGfmPsISbt-5zA', 5.0),
('KZs4kaQIdq0QmXIcbDJabA', 5.0),
('iAWp45mr7_IVItKjBcoywg', 1.0),
('mJUq-GSnPlS4l9FYW1SCAw', 2.0),
('w3Soh9eSxFNXA5w_ieKpfg', 2.727272727272727),
('COFnyyG_h72-Ro6fVCEr8w', 5.0),
('rlT1A3mddtcfe0g6cqgWYA', 4.0),
('w3QX4vspCDAYYUE4nDQb-Q', 4.5),
('ZLU_Vh4kS3dUqJQ-2sdeCA', 5.0),
('8sgFB0hYYMb56oSgnhbsUA', 5.0),
('tVFCNKoMN62Y33pbW1hcDQ', 5.0),
('zdkYBkqw-JLEqcszokiaXg', 1.6666666666666667),
('mNm_0uFyo-dDS5CWH4Q33w', 3.0),
('BwfJx0BwTT34qhA0UOzgTw', 4.6),
('pPi2qwsceFdJt1Jnc2H10g', 4.5),
('lNHQ7ssntHRgOMvNSVT0DQ', 4.0),
('sZdy2AQD0gn7RMAJcu48yg', 3.875),
('0Stp6aD_JpDuPMAmdZjsjA', 2.625),
('zuubn1SFOWOy8gF_xPfBcg', 3.0),
('Dn1Lr8c30xCBYkpqRMfvGw', 4.0),
('QJ375ZGov1d6uAvsNQya6Q', 1.0),
('yDPhgW9x3Mu5c1EEem2SFA', 1.0),
('2MVYsVjhXvvpmD_Vlb7eNQ', 5.0),
('_W4wdEStNMlNdT5B0s7PjQ', 4.666666666666667),
('UpP2YXPpJ4PQo57APiFqlg', 3.5),
('fb5oOZ5IFVD9EqFhZrkpEQ', 4.333333333333333),
('vNBt_B0FUrTYUee4IzviOQ', 3.5),
('1dfkkKnkWmsTF5p6cO-Hag', 4.0),
('yXMTqlLuDAh4LDjiQYcLcQ', 5.0),
('LRTC_Gl63vsOjnhJtPyZXQ', 4.0),
('D42Uqn71eM5e8Q7r459irw', 5.0),
('6yvd8lkA4xdii8HQnz97Jw', 3.1052631578947367),
('8UJFLOgTuq0tw_bkKiKbEA', 2.3333333333333335),
('9ZzL6s8GGD4d8LaHS3ZODA', 4.0),
('y2nfV2UZQ_G4FFtw3SOd8A', 5.0),
('QBGEETFrylHQli9l3tJoAQ', 3.0),
('Vk-3iyk2iKIovB1_1Iy5LA', 4.0),
('K3xpTUT83MJttC0WesGHWg', 3.6),
('86ERj-2NhTAJ2Q8L0DOpyg', 2.8),
('HpWFwBILftnbKI4tVn8V8Q', 2.5),
('iJOX1Cqagi7UhYEl5a6keQ', 1.0),
('FbRuinXHHwY4UyDFeo66Yw', 1.0),
('rmZ9gUyoGHYSsGkg5mzZHw', 4.222222222222222),
('FNyfeKfUsoQ_I-GuTPOtmA', 4.0),
('QZgD4mKg2HKb1CNFhx0NRA', 5.0),
('S-aAbowezbjoF95F7B1WzA', 5.0),
('y370kZZQ135H91hfebwnEQ', 5.0),
('L_FgsF8pVq9X1_j_2N9cKg', 2.3333333333333335),
('9nMkmXkkJvB2oHPs6mXbIA', 3.2222222222222223),
('s1SmQRdza96o9vGsSulVNQ', 2.6666666666666665),
('e5kxYMksMVWApEJdOd0NeA', 5.0),
('HpDn7YJQ1V5tf5Z_PIsWKw', 2.0),
('CBP7YkyoRenwXNyLOru7eg', 3.0),
('Nnwq_o2XP2mWwMhxZCxCvw', 2.75),
('e7mOoAUrNtfZCyUkIelFiA', 5.0),
('q-vntOfaAW3lzPA1WdEzGg', 3.3333333333333335),
('T5EbJUbUJfuqHOzeTtK91Q', 3.6666666666666665),
('_XfFeHbFs4XCVY15QcZuzw', 3.0),
('lWwlPEbkR-yUt057Oc_wjA', 3.6363636363636362),
('DKTjP1CNpR1AHTwprLpc5w', 4.75),
('n46PcQxo1mARQih9tqwKgg', 4.0),
('JmsQ5wqQJHbTG1Ga3iptHg', 4.142857142857143),
('ucpIv1E0x8IhxeLGDXA4MQ', 2.3333333333333335),
('_FOO_RMTdKjtN8zKlWWe1A', 1.5),
('k6RFn53Ww6_lZw7E06lRCQ', 3.6),
('MfVl-R8EhHM7JO4NIKhm0Q', 5.0),
('mG4rWYm2TNiSnQbzjmmJOA', 5.0),
('-NnADpikTs6IWM9tbNO3Zg', 4.416666666666667),
('MElwGkVxMguMqWB86PBl5w', 5.0),
('cgg46H31Q0AZ_kM-ydUcsw', 2.0),
('A5nQcWRJK6uJWoYJLMJnTQ', 4.25),
('aJV1UH4cxeYBYCdJ5p67vA', 4.0),
('Yyx3WaK2FsvRixAkjJ2csw', 3.6666666666666665),
('qxmqV4TMXQeR-8o4iZwhjA', 5.0),
('d7PExbmCMloi87tLvKeudA', 3.0),
('phvzgb9WvV2RXA2j4SAxTQ', 4.666666666666667),
('_0oOOqx0YusrKhOLreoRiQ', 5.0),
('jsdiHrryNLE0RV9Dexayvg', 3.3333333333333335),
('5gkMIg4FDAQP9I3Cdb_urg', 4.666666666666667),
('6VdvRyE4S0QEuBesIBA8qQ', 5.0),
('LczpR3HqYQcNEpfOJPnh4w', 3.0),
('fQk7tJKxXhc9S8vEZwRYCA', 3.4705882352941178),
('vs8aSP9ArwqAlb0LeCnFeQ', 4.444444444444445),
('InwOrbViED32qs54sQy7gA', 5.0),
('sPOW-xLBbvx15CssC0TrNQ', 5.0),
('Ne8HmrGy-5av06wBZClE7w', 3.5),
('lpzFWgRsTTpaZFQHdGkPQA', 3.6),
('Tgm7JC2FHASS8bb8cTnC2w', 5.0),
('7gQSvZz2CkmuHJ-vg66ajA', 4.5),
('yb0AdKzhYwQIlt47rDq8sw', 4.5),
('fwIJshQi-S0IdSyIu7fYOw', 5.0),
('NbqsqQb4rjkfE7vNsIQSHQ', 4.4),
('y0TSILMTb3DiBrsrAuaLwQ', 1.0),
('Fbb0xtV33sBhrWD2B6L3SQ', 4.666666666666667),
('zYkrS3TOgYs-JAafP0ensg', 5.0),
('lfTF1cN7qnyrDExRbCldeA', 2.8333333333333335),
('IA4YtoEEVOAPn573nPUx0Q', 2.0),
('nvY5usxLXy7JNL5u0o-pPA', 2.8),
('-gz7NT6yi4I73jzbjQVcPA', 5.0),
('QDB6PpjeBfhVYLmqjLcHig', 3.5),
('YF8rBNHNCY5v8I3wPlVHrw', 4.5),
('z2Gi5vo-8j544qN_g6ziEg', 4.0),
('E8ClllB8o6jcB4FWuoVHBw', 5.0),
('5_vYRG4W-UyULw15aR2KHA', 5.0),
('FC_As88OdIdVKEb4sqd74A', 4.0),
('AKU1DeoYvTJHtwAty2S10g', 4.666666666666667),
('SldcYnEq_GSaBRSeCo6_Uw', 5.0),
('gC0pSyRFH44IbP3akRxqGg', 5.0),
('co5dKKSuYSyKk_JkPiQSNw', 5.0),
('2OtKt_7AZkfPXioU317R7g', 4.833333333333333),
('2v4jP7UweFE64rNvZIQtdg', 4.5),
('uREPOHsyEIfYW-q0rTymSQ', 5.0),
('i4JdaQg4cJ--IxRo8ly4QQ', 1.0),
('B3fnbki8y9E8T14ixQt0_g', 2.0),
('1Zv7ylHaIY-4N8j4F-5sBg', 5.0),
('dmzmridgGn7CvHNWRraUMg', 5.0),
('1Qo3Pw-XRPaaNfpGPmmORA', 2.3125),
('NArqAP7Fm5f2IdSSQA-OtQ', 2.0),
('T2RweAlLpEbTHQnMec0s8Q', 2.0),
('V4TYKWpVdrkYpFE2zvwWyw', 5.0),
('rO2ejihYTytKwFYAbe6Gig', 5.0),
('mxfVOxp40AOacBgPQ9l6hQ', 5.0),
('kIe34yhKgJiKyon9k8VQ1w', 3.0),
('6e8nr8nAE1M3o3NAc_h0Rg', 4.0),
('8Qxj_wOvdDeRbF1yvGZrvQ', 3.6),
('LS0HfMD-r0e_sZfZ_JbXyg', 3.0),
('fVDa2J9CxKzIOyCKYutjVw', 3.857142857142857),
('kzXxeNB8EKCu4fqZkqf7eg', 4.666666666666667),
('KLFDt4VM3mHg47jDziMuIA', 2.0),
('7-GGvE6ySiPIpb_yR4ezEg', 4.4),
('8tGAZyMx0XOqZbdVxcANmA', 5.0),
('cgL4BoPCkxu7Z12ctTT0UQ', 3.6666666666666665),
('7QuyAkbf_82b29qKFt6yig', 5.0),
('kOrUNxiayo4hUgfJZ8Helw', 4.5),
('tovk_78GPBVMjeE2XEMF9w', 5.0),
('T07nyi6Zg5Rm-jR6jBePpg', 1.8333333333333333),
('USYFx4m_qJSXAlWQ8nWDaw', 5.0),
('_tmVZgWl6uO2xr5Jvl1yCw', 4.0),
('tT35CXTczsgP7GjOEKTZkw', 4.25),
('9aCT1x8udt67wEIqv_xjTA', 3.0),
('y99ZYC9eyI690Csa2fGVEw', 5.0),
('0G6bnnyWoPOxvfxJ1p9L8Q', 2.6666666666666665),
('ZXTNmHnL3HLlU-qkAgvDyA', 3.0),
('l91pXxTZGS5CNWjNBsyg7g', 3.5),
('2vrdaBH6BR_B4GGtGnCmvQ', 3.0),
('zqqq0QR5nyAewS_f1ha1Fw', 5.0),
('XFyBq_SmB-M7lFQkELHKLw', 1.6),
('lm8KfaZux25WDh8TQ6bOpg', 2.0),
('TkmS9Am_Bjbv9jw6vBp6kQ', 3.5),
('Ariwz06at3CtbWZM-gPMAg', 4.5),
('PrLhQXis6Esw5z8E_68SxQ', 3.0),
('2by_D5ecipyAUFBQGtvfag', 5.0),
('V9fk50_VH2lKO_MYJzucmw', 5.0),
('AGx4wPCECTVEBLyl_t8zHg', 4.5),
('E1G3wfKRNHaIvgq1Wv_H0Q', 4.0),
('xZkZO-b3jF1Flcm7gnaS0A', 5.0),
('p8deYirUkk3JVKi_HMPckA', 3.0),
('P3SXJ06KdZNSTDSP0Pzobw', 5.0),
('75J9C6setP8iowg15aS4jw', 3.5),
('JW59_He7v6wdnU4ULxFVxQ', 5.0),
('Al2g2P9gt057Julh1qTPtQ', 5.0),
('fHqYsCq4IoxUJuJnPEhLrg', 5.0),
('YEZohrNLq_jO5ZQqm2Tymg', 3.5),
('B-YlY_3x18lBl5i-aEqqfQ', 5.0),
('j56G3m8vYtA_2Io6FcISBg', 5.0),
('y-mbqh1FcvGq1ltwhx6meg', 5.0),
('kR3xKonyRovqaWvaDey_sw', 1.0),
('0xJZxE6rm92DlxYe2pU42g', 1.0),
('0M4x1qpXH1-SsueppsxpIQ', 4.0),
('EqXDZ_JNMJsDwwPRb2heMQ', 5.0),
('kmHg50YULeTSe-bJqgGZ8w', 5.0),
('iXaKjTuiwyOMi9H8IN46iQ', 2.5),
('_Yv8jjazK3zfXGBOdJM-EA', 4.0),
('NDpe35oZr4WeiAjWlEzN2g', 5.0),
('fyxMChwdIb_RYqsSumPx2g', 4.5),
('31nz8urmYS2uogLPWZnx7Q', 4.0),
('KkiNtRLP2FhoITRoXgO_Pg', 5.0),
('Squ7RS58kkdReEBzcynMfw', 3.5),
('ja7fpRcmSWVy3p2g_oomgw', 3.0),
('xs3GA6q4kJpaKzPUbClw6Q', 5.0),
('792t7CTyHg6LTrGtlpF1cA', 5.0),
('87NkN5TITEUKG4UUsvg2sQ', 4.5),
('8ULNwWDnU-uLxkrdkSWRHQ', 3.5),
...]
In [24]:
train_df.describe().show()
+-------+--------------------+------------------+--------------------+
|summary| business_id| stars| user_id|
+-------+--------------------+------------------+--------------------+
| count| 1931928| 1931928| 1931928|
| mean| null| 3.700451569623713| null|
| stddev| null|1.3296492687453587| null|
| min|--6MefnULPED_I942...| 1|---1lKK3aKOuomHnw...|
| max|zzzaIBwimxVej4tY6...| 5|zzzmshdEWLFCApxET...|
+-------+--------------------+------------------+--------------------+
In [28]:
als_model = ALS(
itemCol='business_idx',
userCol='user_idx',
ratingCol='stars',
nonnegative=True,
regParam=0.1,
rank=10
)
In [29]:
user_idx_mdl = (
StringIndexer(inputCol="user_id", outputCol="user_idx")
.fit(reviews_df)
)
business_idx_mdl = (
StringIndexer(inputCol="business_id", outputCol="business_idx")
.fit(reviews_df)
)
train_df1 = business_idx_mdl.transform(user_idx_mdl.transform(train_df))
test_df1 = business_idx_mdl.transform(user_idx_mdl.transform(test_df))
In [30]:
model = als_model.fit(train_df1)
---------------------------------------------------------------------------
Py4JJavaError Traceback (most recent call last)
<ipython-input-30-35eec0638abe> in <module>()
----> 1 model = als_model.fit(train_df1)
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/pyspark/ml/base.py in fit(self, dataset, params)
62 return self.copy(params)._fit(dataset)
63 else:
---> 64 return self._fit(dataset)
65 else:
66 raise ValueError("Params must be either a param map or a list/tuple of param maps, "
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/pyspark/ml/wrapper.py in _fit(self, dataset)
234
235 def _fit(self, dataset):
--> 236 java_model = self._fit_java(dataset)
237 return self._create_model(java_model)
238
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/pyspark/ml/wrapper.py in _fit_java(self, dataset)
231 """
232 self._transfer_params_to_java()
--> 233 return self._java_obj.fit(dataset._jdf)
234
235 def _fit(self, dataset):
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py in __call__(self, *args)
1131 answer = self.gateway_client.send_command(command)
1132 return_value = get_return_value(
-> 1133 answer, self.gateway_client, self.target_id, self.name)
1134
1135 for temp_arg in temp_args:
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/pyspark/sql/utils.py in deco(*a, **kw)
61 def deco(*a, **kw):
62 try:
---> 63 return f(*a, **kw)
64 except py4j.protocol.Py4JJavaError as e:
65 s = e.java_exception.toString()
/usr/local/Cellar/apache-spark/2.1.1/libexec/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
317 raise Py4JJavaError(
318 "An error occurred while calling {0}{1}{2}.\n".
--> 319 format(target_id, ".", name), value)
320 else:
321 raise Py4JError(
Py4JJavaError: An error occurred while calling o276.fit.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 34.0 failed 1 times, most recent failure: Lost task 2.0 in stage 34.0 (TID 550, localhost, executor driver): ExecutorLostFailure (executor driver exited caused by one of the running tasks) Reason: Executor heartbeat timed out after 175415 ms
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1435)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1423)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1422)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1422)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:802)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:802)
at scala.Option.foreach(Option.scala:257)
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:802)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1650)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1605)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1594)
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:628)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1925)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1938)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1951)
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1965)
at org.apache.spark.rdd.RDD.count(RDD.scala:1158)
at org.apache.spark.ml.recommendation.ALS$.train(ALS.scala:694)
at org.apache.spark.ml.recommendation.ALS.fit(ALS.scala:464)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:280)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:214)
at java.lang.Thread.run(Thread.java:748)
In [13]:
sc
Out[13]:
<pyspark.context.SparkContext at 0x10f10a6a0>
In [14]:
spark
Out[14]:
<pyspark.sql.session.SparkSession at 0x11493cb00>
In [ ]:
In [ ]:
Content source: samleegithub/RestaurantRecs
Similar notebooks: