25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
|
from collections import OrderedDict
|
||
|
from collections import Counter
|
||
|
from cassandra.cluster import Cluster
|
||
|
|
||
|
cluster = Cluster(['172.20.0.6', '172.20.0.7', '172.20.0.8'])
|
||
|
session = cluster.connect('twitter')
|
||
|
|
||
|
# 2. Find the 100 accounts with the most followers
|
||
|
rows = session.execute('SELECT user_id,follower_len FROM twitter.most_follows;')
|
||
|
sorted_rows = dict(sorted(dict(rows).items(), key=lambda item: item[1]))
|
||
|
most_follows = list(sorted_rows.keys())[-100:]
|
||
|
print("Top 100 most followed accounts:",most_follows)
|
||
|
|
||
|
print("________________________________________________________________")
|
||
|
|
||
|
# Finding the 100 accounts that follow the most of the accounts found in 2).
|
||
|
followed_accs = session.execute(f'SELECT follower_id FROM twitter.follower_relation WHERE user_id IN {tuple(most_follows)};')
|
||
|
# followed_accs = list(followed_accs.keys())
|
||
|
_list = list()
|
||
|
for row in followed_accs:
|
||
|
_list.append(row[0])
|
||
|
|
||
|
followed_top_100 = Counter(_list).most_common(100)
|
||
|
print("100 accounts that follow the most of the accounts found in 2)",followed_top_100)
|