!"##"$ &'()*$+ ,$ -.'*/ 0'1' &*"2)++,$3 !4'.1)* 56
78598:
!"?*+) !4'.1)*+ 5
H$1*"@?2I"$
!"?*+) H$1*"@?2I"$
7 H$1*"@?2I"$ 1" P'@"". '$@ 14) P'@"". Q2"+<+1)# P'@"". B*24,1)21?*) '$@ P0OU
H$1*"@?2I"$ 1" P'@"".
H#."*I$3 L)>'I"$'> 0'1' F,14 B.'24) -S"". V H$1*"@?2I"$ 1" H#.'>' '$@ P,C) 9 6 R"@)>,$3 '$@ R'$'3,$3 0'1' F,14 H#.'>' '$@ P,C) 0'1' O"*#'1+ W 0'1' O,>) &'*II"$,$3 T
H#."*I$3 '$@ R"@)>,$3 -1*?21?*)@ 0'1'
:
!'.1?*,$3 0'1' F,14 B.'24) O>?#)
58 55 57 5U 5V 59 !" 5W
-.'*/ J'+,2+ K"*/,$3 F,14 L00+ ,$ -.'*/ B33*)3'I$3 0'1' F,14 &',* L00+ K*,I$3 '$@ 0).>"<,$3 -.'*/ B..>,2'I"$+ &'*'>>)> &*"2)++,$3 ,$ -.'*/ -.'*/ L00 &)*+,+1)$2) &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7 -.'*/ -MN '$@ 0'1'O*'#)+
5T
!"$2>?+,"$
H$3)+I$3 -1*)'#,$3 0'1'
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!"?*+) !"$2>?+,"$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$
!"?*+) !4'.1)*+ 5
H$1*"@?2I"$
!"?*+) H$1*"@?2I"$
7 H$1*"@?2I"$ 1" P'@"". '$@ 14) P'@"". Q2"+<+1)# P'@"". B*24,1)21?*) '$@ P0OU
H$1*"@?2I"$ 1" P'@"".
H#."*I$3 L)>'I"$'> 0'1' F,14 B.'24) -S"". V H$1*"@?2I"$ 1" H#.'>' '$@ P,C) 9 6 R"@)>,$3 '$@ R'$'3,$3 0'1' F,14 H#.'>' '$@ P,C) 0'1' O"*#'1+ W 0'1' O,>) &'*II"$,$3 T
H#."*I$3 '$@ R"@)>,$3 -1*?21?*)@ 0'1'
:
!'.1?*,$3 0'1' F,14 B.'24) O>?#)
58 55 57 5U 5V 59 !" 5W
-.'*/ J'+,2+ K"*/,$3 F,14 L00+ ,$ -.'*/ B33*)3'I$3 0'1' F,14 &',* L00+ K*,I$3 '$@ 0).>"<,$3 -.'*/ B..>,2'I"$+ &'*'>>)> &*"2)++,$3 ,$ -.'*/ -.'*/ L00 &)*+,+1)$2) &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7 -.'*/ -MN '$@ 0'1'O*'#)+
5T
!"$2>?+,"$
H$3)+I$3 -1*)'#,$3 0'1'
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!"?*+) !"$2>?+,"$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$
!"##"$ &'()*$+ ,$ -.'*/ &*"3*'##,$3 >) 5<0/ 6<+25-. ?'9 ;0@@ @-+.) !
A<+5 30):/ 'B 2.'6-//0)7 +): +)+@?/0/ 12+.3 0/ 8-/5 +5
!
C'; 5' 0(2@-(-)5 +) 05-.+DE- +@7'.05<( 0) 12+.3
!
C'; F.+2
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
&'((') 12+.3 K/- &+/-/
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
R'24,$) N)'*$,$3
!
QZ'#.>)[ /=#)'$+
!
!"$2>?+,"$
!
P"#)F"*/[[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/ P"#)F"*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#J
!"##"$ -.'*/ ]+) !'+)+ ^5_ !
12+.3 0/ -/2-60+@@? 9/-B9@ ;<-) ;'.30)7 ;05< +)? 6'(80)+D') 'BM
– N'*3) '#"?$1+ "G @'1' – 0,+1*,E?1)@ +1"*'3) – H$1)$+,C) 2"#.?1'I"$+ – 0,+1*,E?1)@ 2"#.?I$3 – H1)*'IC) '>3"*,14#+ – H$=#)#"*< .*"2)++,$3 '$@ .,.)>,$,$3
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#L
!"##"$ -.'*/ ]+) !'+)+ ^7_ !
NO+(2@-/
– L,+/ '$'><+,+ – `P"F >,/)>< ,+ 14,+ E"**"F)* 1" .'< E'2/ ' >"'$ab – L)2"##)$@'I"$+ – `K4,24 .*"@?21+ F,>> 14,+ 2?+1"#)* )$c"
< *)'2I$3 1" 14)#ab – !>'++,d2'I"$ – `P"F 2'$ F) 1)>> F4,24 #',> ,+ +.'# '$@ F4,24 ,+ >)3,I#'1)ab
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#"
-.'*/ QZ'#.>)+ !
12+.3 0)6@9:-/ (+)? -O+(2@- 2.'7.+(/ 5<+5 :-(')/5.+5- /'(- 6'((') 12+.3 2.'7.+((0)7 2+,-.)/ +): +@7'.05<(/
– /=#)'$+ – N"3,+I2 *)3*)++,"$ – !'>2?>'1) ., – B>1)*$'I$3 >)'+1 +S?'*)+ ^BN-_ – M?)*<,$3 B.'24) F)E >"3+ – &*"2)++,$3 XF,()* G))@+ !
NO+(2@-/
– $SPARK_HOME/examples/lib – spark-examples -version.jar Q R+E+ +): 16+@+ -O+(2@-/ – python.tar.gz Q *?/2+.3 -O+(2@-/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#P
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
>5-.+DE- T@7'.05<(/ 0) 12+.3
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
R'24,$) N)'*$,$3
!
QZ'#.>)[ /=#)'$+
!
!"$2>?+,"$
!
P"#)F"*/[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#S
QZ'#.>)[ &'3)L'$/ !
*+7-V+)3 70E-/ ;-8 2+7-/ + .+)30)7 /6'.- 8+/-: ') @0)3/ B.'( '5<-. 2+7-/
– P,34)* +2"*)+ 3,C)$ G"* #"*) >,$/+e '$@ >,$/+ G*"# "14)* 4,34 *'$/,$3 .'3)+ !
A :' ;- 6+.-W
– &'3)L'$/ ,+ ' 2>'++,2 )Z'#.>) "G E,3 @'1' '$'><+,+ ^>,/) K"*@!"?$1_ – N"1+ "G @'1' f $))@+ '$ '>3"*,14# 14'1 ,+ @,+1*,E?1'E>) '$@ +2'>'E>) – H1)*'IC) f 14) #"*) ,1)*'I"$+e 14) E)()* 14'$ '$+F)*
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#U
&'3)L'$/ B>3"*,14# ^5_ !Y
15+.5 -+6< 2+7- ;05< + .+)3 'B !YX
&'3) 5
5A8 &'3) 7
&'3) U
5A8
5A8 &'3) V
5A8
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!X
&'3)L'$/ B>3"*,14# ^7_ !Y
15+.5 -+6< 2+7- ;05< + .+)3 'B !YX
$Y
Z) -+6< 05-.+D')M 5A )'24 .'3) 2"$1*,E?1)+ 1" ,1+ $),34E"*+ ,1+ "F$ *'$/ @,C,@)@ E< 14) $?#E)* "G ,1+ $),34E"*+[ 2"$1*,E. g *'$/. h $),34E"*+.
&'3) 5
5A8
"
&'3) 7
A 9
5A8
&'3) U
5A8
&'3) V
5A8
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!!
&'3)L'$/ B>3"*,14# ^U_ !Y
15+.5 -+6< 2+7- ;05< + .+)3 'B !YX
$Y
Z) -+6< 05-.+D')M 5A )'24 .'3) 2"$1*,E?1)+ 1" ,1+ $),34E"*+ ,1+ "F$ *'$/ @,C,@)@ E< 14) $?#E)* "G ,1+ $),34E"*+[ 2"$1*,E. g *'$/. h $),34E"*+. 7A -)1 )'24 .'3)i+ $)F *'$/ E'+)@ "$ 14) +?# "G ,1+ $),34E"*+ 2"$1*,E?I"$[ $)F=*'$/ g j2"$1*,E+ k AT9 l A59
&'3) 5
H1)*'I"$ 5
5AT9 &'3) 7
8A9T
" A 9
&'3) U
5A8
&'3) V
8A9T
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!$
&'3)L'$/ B>3"*,14# ^V_ !Y
15+.5 -+6< 2+7- ;05< + .+)3 'B !YX
$Y
Z) -+6< 05-.+D')M 5A )'24 .'3) 2"$1*,E?1)+ 1" ,1+ $),34E"*+ ,1+ "F$ *'$/ @,C,@)@ E< 14) $?#E)* "G ,1+ $),34E"*+[ 2"$1*,E. g *'$/. h $),34E"*+. 7A -)1 )'24 .'3)i+ $)F *'$/ E'+)@ "$ 14) +?# "G ,1+ $),34E"*+ 2"$1*,E?I"$[ $)F=*'$/ g j2"$1*,E+ k AT9 l A59
=Y
N+6< 05-.+D') 0)6.-(-)5+@@? 0(2.'E-/ 5<- 2+7- .+)30)7 &'3) 5
H1)*'I"$ 7
5AU5 &'3) 7
8AU:
" A 7 :
&'3) U
5AW
&'3) V
8A9W
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!=
&'3)L'$/ B>3"*,14# ^9_ !Y
15+.5 -+6< 2+7- ;05< + .+)3 'B !YX
$Y
Z) -+6< 05-.+D')M 5A )'24 .'3) 2"$1*,E?1)+ 1" ,1+ $),34E"*+ ,1+ "F$ *'$/ @,C,@)@ E< 14) $?#E)* "G ,1+ $),34E"*+[ 2"$1*,E. g *'$/. h $),34E"*+. 7A -)1 )'24 .'3)i+ $)F *'$/ E'+)@ "$ 14) +?# "G ,1+ $),34E"*+ 2"$1*,E?I"$[ $)F=*'$/ g j2"$1*,E+ k AT9 l A59
=Y
N+6< 05-.+D') 0)6.-(-)5+@@? 0(2.'E-/ 5<- 2+7- .+)30)7 &'3) 5
>5-.+D') !X ^O,$'>_
5AVU &'3) 7
8AV6
" A U W
&'3) U
5AUT
&'3) V
8AWU
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!J
&'3)L'$/ ,$ -.'*/[ D),34E"* !"$1*,E?I"$ O?$2I"$
def computeContribs(neighbors, rank): for neighbor in neighbors: yield(neighbor, rank/len(neighbors))
$),34E"*+[ m.'3)5e.'3)7n *'$/[ 5A8
^.'3)5eA9_ ^.'3)7eA9_ &'3) 5
"
&'3) 7
&'3) U
A 9
&'3) V
5A8
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!L
&'3)L'$/ ,$ -.'*/[ QZ'#.>) 0'1' 0'1' O"*#'1[ source-page destination-page
o
page1 page2 page4 page3 page4 page3
page3 page1 page1 page1 page2 page4
&'3) 5
&'3) 7
&'3) U
&'3) V
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!"
&'3)L'$/ ,$ -.'*/[ &',*+ "G &'3) N,$/+
def computeContribs(neighbors, rank):… links = sc.textFile(file)\ .map(lambda line: line.split())\ .map(lambda pages: (pages[0],pages[1]))\ .distinct()
page1 page2 page4 page3 page4 page3
page3 page1 page1 page1 page2 page4
(page1,page3) (page2,page1) (page4,page1) (page3,page1) (page4,page2) (page3,page4)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!P
&'3)L'$/ ,$ -.'*/[ &'3) N,$/+ Y*"?.)@ E< -"?*2) &'3)
def computeContribs(neighbors, rank):… links = sc.textFile(file)\ .map(lambda line: line.split())\ .map(lambda pages: (pages[0],pages[1]))\ .distinct()\ .groupByKey()
page1 page2 page4 page3 page4 page3
page3 page1 page1 page1 page2 page4
(page1,page3) (page2,page1) (page4,page1) (page3,page1) (page4,page2) (page3,page4)
>,$/+ (page4, [page2,page1]) (page2, [page1]) (page3, [page1,page4]) (page1, [page3])
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!S
&'3)L'$/ ,$ -.'*/[ &)*+,+I$3 14) N,$/ &',* L00
def computeContribs(neighbors, rank):… links = sc.textFile(file)\ .map(lambda line: line.split())\ .map(lambda pages: (pages[0],pages[1]))\ .distinct()\ .groupByKey()\ .persist()
page1 page2 page4 page3 page4 page3
page3 page1 page1 page1 page2 page4
(page1,page3) (page2,page1) (page4,page1) (page3,page1) (page4,page2) (page3,page4)
>,$/+ (page4, [page2,page1]) (page2, [page1]) (page3, [page1,page4]) (page1, [page3])
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#!U
&'3)L'$/ ,$ -.'*/[ -)1 H$,I'> L'$/+
def computeContribs(neighbors, rank):…
>,$/+ (page4, [page2,page1]) (page2, [page1])
links = sc.textFile(file)\ .map(lambda line: line.split())\ .map(lambda pages: (pages[0],pages[1]))\ .distinct()\ .groupByKey()\ .persist()
(page3, [page1,page4]) (page1, [page3])
*'$/+
(page4, 1.0)
ranks=links.map(lambda (page,neighbors): (page,1.0))
(page2, 1.0) (page3, 1.0) (page1, 1.0)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$X
&'3)L'$/ ,$ -.'*/[ O,*+1 H1)*'I"$ ^5_
def computeContribs(neighbors, rank):… links = … ranks = … for x in xrange(10): contribs=links\ .join(ranks)
>,$/+
*'$/+
(page4, [page2,page1])
(page4, 1.0)
(page2, [page1])
(page2, 1.0)
(page3, [page1,page4])
(page3, 1.0)
(page1, [page3])
(page1, 1.0)
(page4, ([page2,page1], 1.0)) (page2, ([page1], 1.0)) (page3, ([page1,page4], 1.0)) (page1, ([page3], 1.0))
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$!
&'3)L'$/ ,$ -.'*/[ O,*+1 H1)*'I"$ ^7_
def computeContribs(neighbors, rank):… links = … ranks = …
>,$/+
*'$/+
(page4, [page2,page1])
(page4, 1.0)
(page2, [page1])
(page2, 1.0)
(page3, [page1,page4])
(page3, 1.0)
(page1, [page3])
(page1, 1.0)
for x in xrange(10): contribs=links\ .join(ranks)\ .flatMap(lambda (page,(neighbors,rank)): \ computeContribs(neighbors,rank))
(page4, ([page2,page1], 1.0) ) (page2, ([page1], 1.0) ) (page3, ([page1,page4], 1.0) ) (page1, ([page3], 1.0) ) 2"$1*,E+
(page2,0.5) (page1,0.5) (page1,1.0) (page1,0.5) (page4,0.5) (page3,1.0)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$$
&'3)L'$/ ,$ -.'*/[ O,*+1 H1)*'I"$ ^U_ 2"$1*,E+
(page2,0.5)
def computeContribs(neighbors, rank):…
(page1,0.5) (page1,1.0)
links = …
(page1,0.5)
ranks = …
(page4,0.5) (page3,1.0)
for x in xrange(10): contribs=links\ .join(ranks)\ .flatMap(lambda (page,(neighbors,rank)): \ computeContribs(neighbors,rank)) ranks=contribs\ .reduceByKey(lambda v1,v2: v1+v2)
(page4,0.5) (page2,0.5) (page3,1.0) (page1,2.0)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$=
&'3)L'$/ ,$ -.'*/[ O,*+1 H1)*'I"$ ^V_ 2"$1*,E+
(page2,0.5)
def computeContribs(neighbors, rank):…
(page1,0.5) (page1,1.0)
links = …
(page1,0.5)
ranks = …
(page4,0.5) (page3,1.0)
for x in xrange(10): contribs=links\ .join(ranks)\ .flatMap(lambda (page,(neighbors,rank)): \ computeContribs(neighbors,rank)) ranks=contribs\ .reduceByKey(lambda v1,v2: v1+v2)\ .map(lambda (page,contrib): \ (page,contrib * 0.85 + 0.15))
(page4,0.5) (page2,0.5) (page3,1.0) (page1,2.0) *'$/+
(page4,.58) (page2,.58) (page3,1.0) (page1,1.85)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$J
&'3)L'$/ ,$ -.'*/[ -)2"$@ H1)*'I"$
def computeContribs(neighbors, rank):… links = … ranks = …
>,$/+
*'$/+
(page4, [page2,page1])
(page4,0.58)
(page2, [page1])
(page2,0.58)
(page3, [page1,page4])
(page3,1.0)
(page1, [page3])
(page1,1.85)
for x in xrange(10): contribs=links\ .join(ranks)\ .flatMap(lambda (page,(neighbors,rank)): \ computeContribs(neighbors,rank)) ranks=contribs\ .reduceByKey(lambda v1,v2: v1+v2)\ .map(lambda (page,contrib): \ (page,contrib * 0.85 + 0.15)) for rank in ranks.collect(): print rank
o *'$/+
(page4,0.57) (page2,0.21) (page3,1.0) (page1,0.77)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$L
!4)2/.",$I$3 ^5_ !
H+0)5+0)0)7 V44 @0)-+7- 2.'E0:-/ .-/0@0-)6- 895 6+) +@/' 6+9/- 2.'8@-(/ ;<-) 5<- @0)-+7- 7-5/ E-.? @')7
– )A3Ae ,1)*'IC) '>3"*,14#+e +1*)'#,$3 !
V-6'E-.? 6+) 8- E-.? -O2-)/0E-
!
*'5-)D+@ /5+63 'E-.[';
myrdd = !"#"$%&'(%&)*! while x in xrange(100): myrdd = myrdd.transform(…) myrdd.saveAsTextFile(dir )
H1)*5
data… H1)*7 data… data… H1)*U data… data… data… data… H1)*V data… data… data… data… data… data… data… data… data…
o
H1)*588
data… data… data… data…
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$"
!4)2/.",$I$3 ^7_ !
&<-632'0)D)7 /+E-/ 5<- :+5+ 5' C4\1
– &*"C,@)+ G'?>1=1">)*'$1 +1"*'3) '2*"++ $"@)+ !
P0O-
I0)-+7- 0/ )'5 /+E-:
data… !
H9/5 8- 6<-632'0)5-: 8-B'.- +)? +6D')/ ') 5<- V44
sc.setCheckpointDir( directory ) myrdd = !"#"$%&'(%&)*! while x in xrange(100): myrdd = myrdd.transform(…) if x % 3 == 0: myrdd.checkpoint() myrdd.count() myrdd.saveAsTextFile(dir )
H1)*U
24)2/.",$1
data… data…
data… H1)*V data… data… data… data… data… data… data…
o
H1)*588
data… data… data… data…
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$P
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
F.+2< *.'6-//0)7 +): T)+@?/0/
!
R'24,$) N)'*$,$3
!
QZ'#.>)[ /=#)'$+
!
!"$2>?+,"$
!
P"#)F"*/[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$S
Y*'.4 B$'>
H+)? :+5+ +)+@?D6/ 2.'8@-(/ ;'.3 ;05< ]:+5+ 2+.+@@-@^ +@7'.05<(/
– L)2"*@+ 2'$ E) .*"2)++)@ ,$@).)$@)$1>< "G )'24 "14)* – p)*< F)>> +?,1)@ 1" .'*'>>)>,q,$3 !
1'(- 2.'8@-(/ B'69/ ') 5<- .-@+D')/<02/ 8-5;--) 5<- 0):0E0:9+@ :+5+ 05-(/Y \'. -O+(2@-M
– -"2,'> $)1F"*/+ – K)E .'3) 4<.)*>,$/+ – L"'@#'.+ !
_<-/- .-@+D')/<02/ 6+) 8- .-2.-/-)5-: 8? 7.+2
– L)S?,*)+ `3*'.4 .'*'>>)>b '>3"*,14#+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#$U
Y*'.4 B$'><+,+ !4'>>)$3)+ '1 -2'>) !
F.+2< &.-+D')
– QZ1*'2I$3 *)>'I"$+4,. ,$G"*#'I"$ G*"# ' @'1' +"?*2) – O"* )Z'#.>)e )Z1*'2I$3 >,$/+ G*"# F)E .'3)+ !
F.+2< V-2.-/-)5+D')
– )A3Ae '@c'2)$2< >,+1+ ,$ ' 1'E>) !
F.+2< T)+@?/0/
– H$4)*)$1>< ,1)*'IC)e 4'*@ 1" .'*'>>)>,q) – X4,+ ,+ 14) G"2?+ "G +.)2,'>,q)@ >,E*'*,)+ >,/) &*)3)>e Y*'.4N'E !
*'/5#+)+@?/0/ 2.'6-//0)7
– )A3Ae ,$2"*."*'I$3 .*"@?21 *)2"##)$@'I"$+ ,$1" ' *)1',> +,1)
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=X
Y*'.4 B$'><+,+ ,$ -.'*/ !
12+.3 0/ E-.? ;-@@ /905-: 5' 7.+2< 2+.+@@-@ +@7'.05<(/
!
F.+2
– ]! J)*/)>)< BR&N'E .*"c)21 "$ 1". "G -.'*/ – ]$,d)+ ".I#,q)@ 3*'.4 2"#.?1'I"$ F,14 -.'*/i+ G'+1 @'1' .'*'>>)>,+# '$@ ,$1)*'2IC) 'E,>,I)+ – -?.)*+)@)+ .*)@)2)++"* J'3)> ^&*)3)> "$ -.'*/_
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=!
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
H+6<0)- I-+.)0)7
!
QZ'#.>)[ /=#)'$+
!
!"$2>?+,"$
!
P"#)F"*/[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=$
R'24,$) N)'*$,$3 !
H'/5 2.'7.+(/ 5-@@ 6'(295-./ -O+65@? ;<+5 5' :'
– 0'1'E'+) 1*'$+'2I"$+ '$@ S?)*,)+ – !"$1*">>)*+ – &4"$) +<+1)#+e #'$?G'21?*,$3 .*"2)++)+e 1*'$+."*1e F)'."$*,C)*< – -,#.>) +)'*24 – -"2,'> +<+1)#+ – !4'1e E>"3+e )#',>e )12A !
!
!
T) +@5-.)+DE- 5-6<)0`9- 0/ 5' <+E- 6'(295-./ !"#$% ;<+5 5' :' H+6<0)- I-+.)0)7 .-B-./ 5' 2.'7.+(/ 5<+5 @-E-.+7- 6'@@-65-: :+5+ 5' :.0EB959.- 2.'7.+( 8-<+E0'. _<0/ .-2.-/-)5/ +)'5<-. (+a'. '22'.59)05? 5' 7+0) E+@9- B.'( :+5+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#==
X4) rX4*)) !+i !
!
H+6<0)- I-+.)0)7 0/ +) +6DE- +.-+ 'B .-/-+.6< +): )-; +22@06+D')/ _<-.- +.- 5<.-- ;-@@#-/5+8@0/<-: 6+5-7'.0-/ 'B 5-6<)0`9-/ B'. -O2@'0D)7 :+5+
– !">>'E"*'IC) d>1)*,$3 ^*)2"##)$@'I"$+_ – !>?+1)*,$3 – !>'++,d2'I"$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=J
!">>'E"*'IC) O,>1)*,$3 !
!
!
!
&'@@+8'.+DE- \[email protected])7 0/ + 5-6<)0`9- B'. .-6'((-):+D')/ NO+(2@- +22@06+D')M 70E-) 2-'2@- ;<' -+6< @03- 6-.5+0) 8''3/b @-+.) 5' /977-/5 ;<+5 /'(-')- (+? @03- 0) 5<- B959.- 8+/-: ') ;<+5 5<-? [email protected]+:? @03C-@2/ 9/-./ )+E07+5- :+5+ 8? -O2+):0)7 5' 5'206/ 5<+5 <+E- +c)05? ;05< 5<-0. -/5+8@0/<-: 0)5-.-/5/ &'@@+8'.+DE- \[email protected])7 +@7'.05<(/ +.- +7)'/D6 5' 5<- :0d-.-)5 5?2-/ 'B :+5+ 05-(/ 0)E'@E-:
– ]+)G?> ,$ #'$< @,s)*)$1 @"#',$+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=L
!>?+1)*,$3 !
&@9/5-.0)7 +@7'.05<(/ :0/6'E-. /5.9659.- 0) 6'@@-6D')/ 'B :+5+
– K4)*) $" G"*#'> +1*?21?*) .*)C,"?+>< )Z,+1)@ !
_<-? :0/6'E-. ;<+5 6@9/5-./b '. 7.'920)7/b )+59.+@@? '669. 0) :+5+
!
NO+(2@-/
– O,$@,$3 *)>'1)@ $)F+ '*I2>)+ – !"#.?1)* C,+,"$ ^3*"?.+ "G .,Z)>+ 14'1 2"4)*) ,$1" "Ec)21+_
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#="
!>'++,d2'I"$ !
_<- 2.-E0'9/ 5;' 5-6<)0`9-/ +.- 6')/0:-.-: e9)/92-.E0/-:f @-+.)0)7
– X4) '>3"*,14# @,+2"C)*+ 3*"?.+ "* *)2"##)$@'I"$+ ,1+)>G !
&@+//0g6+D') 0/ + B'.( 'B e/92-.E0/-:f @-+.)0)7
!
T 6@+//0g6+D') /?/5-( 5+3-/ + /-5 'B :+5+ .-6'.:/ ;05< 3)';) @+8-@/
– N)'*$+ 4"F 1" >'E)> $)F *)2"*@+ E'+)@ "$ 14'1 ,$G"*#'I"$ !
NO+(2@-/
– Y,C)$ ' +)1 "G )=#',>+ ,@)$Id)@ '+ +.'#h$"1 +.'#e >'E)> $)F )=#',>+ '+ +.'#h$"1 +.'# – Y,C)$ 1?#"*+ ,@)$Id)@ '+ E)$,3$ "* #'>,3$'$1e 2>'++,G< $)F 1?#"*+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=P
R'24,$) N)'*$,$3 !4'>>)$3)+ !
!
C07<@? 6'(295+D') 0)5-)/0E- +): 05-.+DEH+)? 5.+:0D')+@ )9(-.06+@ 2.'6-//0)7 /?/5-(/ :' )'5 /6+@- 5' E-.? @+.7:+5+/-5/
– )A3Ae R'1N'E
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=S
RN>,E[ R'24,$) N)'*$,$3 "$ -.'*/ !
HI@08 0/ 2+.5 'B T2+6<- 12+.3
!
>)6@9:-/ (+)? 6'((') HI B9)6D')/
– BN- ^'>1)*$'I$3 >)'+1 +S?'*)+_ – /=#)'$+ – N"3,+I2 L)3*)++,"$ – N,$)'* L)3*)++,"$ – Y*'@,)$1 0)+2)$1 !
1D@@ + e;'.3 0) 2.'7.-//f
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#=U
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
R'24,$) N)'*$,$3
!
NO+(2@-M 3#(-+)/
!
!"$2>?+,"$
!
P"#)F"*/[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JX
/=#)'$+ !>?+1)*,$3 !
3#(-+)/ &@9/5-.0)7
– B 2"##"$ ,1)*'IC) '>3"*,14# ?+)@ ,$ 3*'.4 '$'><+,+ '$@ #'24,$) >)'*$,$3 – t"? F,>> ,#.>)#)$1 ' +,#.>,d)@ C)*+,"$ ,$ 14) 4"#)F"*/ '++,3$#)$1
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#J!
!>?+1)*,$3 ^5_
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#J$
!>?+1)*,$3 ^7_ Y"'>[ O,$@ `2>?+1)*+b "G @'1' .",$1+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#J=
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^5_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JJ
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^7_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)*
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JL
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^U_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)*
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#J"
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^V_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JP
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^9_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JS
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^6_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#JU
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^W_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#LX
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^T_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#L!
QZ'#.>)[ /=#)'$+ !>?+1)*,$3 ^:_ 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@e ,1)*'1) '3',$ o 9A 0"$)u
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#L$
QZ'#.>)[ B..*"Z,#'1) /=#)'$+ !>?+1)*,$3 5A !4""+) , *'$@"# .",$1+ '+ +1'*I$3 2)$1)*+ 7A O,$@ '>> .",$1+ 2>"+)+1 1" )'24 2)$1)* UA O,$@ 14) 2)$1)* ^#)'$_ "G )'24 2>?+1)* VA HG 14) 2)$1)*+ 24'$3)@ E< #"*) 14'$ -e ,1)*'1) '3',$ o 9A !>"+) )$"?34u
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#L=
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
R'24,$) N)'*$,$3
!
QZ'#.>)[ /=#)'$+
!
&')6@9/0')
!
P"#)F"*/[ H#.>)#)$1 '$ H1)*'IC) B>3"*,14# F,14 -.'*/
!
\.I"$'> P"#)F"*/[ &'*II"$ 0'1' O,>)+ ]+,$3 -.'*/
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#LJ
Q++)$I'> &",$1+ !
12+.3 0/ -/2-60+@@? /905-: 5' 807 :+5+ 2.'8@-(/ 5<+5 .-`90.- 05-.+D')
– H$=#)#"*< .)*+,+1)$2) #'/)+ 14,+ C)*< )v2,)$1 !
&'((') 0) (+)? 5?2-/ 'B +)+@?/0/
– )A3Ae 2"##"$ '>3"*,14#+ +?24 '+ &'3)L'$/ '$@ /=#)'$+ !
12+.3 0)6@9:-/ /2-60+@0h-: @08.+.0-/ 5' 0(2@-(-)5 (+)? 6'((') B9)6D')/
– Y*'.4w – RN>,E !
F.+2
– P,34>< )v2,)$1 3*'.4 '$'><+,+ ^+,#,>'* 1" &*)3)> )1 '>A_ '$@ 3*'.4 2"$+1*?2I"$e *).*)+)$1'I"$ '$@ ."+1=.*"2)++,$3 !
HI@08
– Qv2,)$1e +2'>'E>) G?$2I"$+ G"* #'24,$) >)'*$,$3 ^)A3Ae >"3,+I2 *)3*)++,"$e /=#)'$+_ ; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#LL
!4'.1)* X".,2+ &'((') *+,-.)/ 0) 12+.3 4+5+ *.'6-//0)7
40/5.0895-: 4+5+ *.'6-//0)7 ;05< 12+.3
!
!"##"$ -.'*/ ]+) !'+)+
!
H1)*'IC) B>3"*,14#+ ,$ -.'*/
!
Y*'.4 &*"2)++,$3 '$@ B$'><+,+
!
R'24,$) N)'*$,$3
!
QZ'#.>)[ /=#)'$+
!
!"$2>?+,"$
!
C'(-;'.3M >(2@-(-)5 +) >5-.+DE- T@7'.05<( ;05< 12+.3
!
Z2D')+@ C'(-;'.3M *+.DD') 4+5+ \0@-/ K/0)7 12+.3
; !".<*,341 7858=7859 !>"?@)*'A B>> *,341+ *)+)*C)@A D"1 1" E) *).*"@?2)@ "* +4'*)@ F,14"?1 .*,"* F*,()$ 2"$+)$1 G*"# !>"?@)*'A !"#L"