-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkworbspark.py
More file actions
executable file
·49 lines (35 loc) · 2.38 KB
/
Copy pathkworbspark.py
File metadata and controls
executable file
·49 lines (35 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
archive = spark.read.json("/home/rennan/Documents/latin/kworb/arquivos/final/history.out.json", multiLine = True)
archiveRDD = archive.rdd
#Limpeza dos dados
def f(x):
x[2] = x[2].split("(")[0]s
return x
#Todas os artisas presentes (e em ordem)
artists = archiveRDD.flatMap(lambda x: x[0].split(","))
artists = artists.map(lambda x: x.lower())
artists_frequence = artists.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas as musica:
musics = archiveRDD.map(lambda x: x[2].split(" (")[0].lower())
frequence_musics = musics.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas as palavras presentes em todas as músicas
music_words = musics.flatMap(lambda x: x.split())
frequence_words = music_words.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas as palavras com ou mais de 5/10 letras presentes em todas as músicas
music_words5 = music_words.filter(lambda x: len(x)>=5)
frequence_words5 = music_words5.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
music_words10 = music_words.filter(lambda x: len(x)>=10)
frequence_words10 = music_words10.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas musicas que mais ficaram em primeiro lugar todas as músicas
music_pos = archiveRDD.map(lambda x: (x[2].split(" (")[0], x[1]))
music_1 = music_pos.filter(lambda x: x[1] == '1')
music_1_name = music_1.map(lambda x: x[0])
frequence_musics_1 = music_1_name.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas os artistas que mais ficaram em primeiro lugar
artist_pos = archiveRDD.map(lambda x: (x[0].split(",")[0], x[1]))
artist_1 = artist_pos.filter(lambda x: x[1] == '1')
artist_1_name = artist_1.map(lambda x: x[0])
frequence_artist_1 = artist_1_name.map(lambda x: (x,1)).reduceByKey(lambda x,y:x+y).map(lambda x: (x[1],x[0])).sortByKey(ascending=False)
#Todas as palavras mais frequentes das musicas que ficaram em primeiro lugar
#Todas as duplas de palavras presentes em todas as músicas
#Plota todas as relações musica-artista e aparecem mais de uma vez, caso seja uma música frequente
artist_music = archiveRDD.map(lambda x: (x[0].split(",")[0],x[2].split(" (")[0]))