рдкреБрд╕реНрддрдХ "рдкреНрд░рднрд╛рд╡реА рд╕реНрдкрд╛рд░реНрдХред рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдЕрдиреБрдХреВрд▓рди "

рдЫрд╡рд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо JVM рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕реНрдкрд╛рд░реНрдХ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрдХрд╛рд▓рд╛ рднрд╛рд╖рд╛ рд╕реЗ рдкрд░реЗ рдЬрд╛рдиреЗ рдкрд░ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдЬреЗрд╡реАрдПрдо рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЦрдВрдб рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧреИрд░-рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛ рдЕрдХреНрд╕рд░ рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рди рдХрд┐ рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдкрд░ред

рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣рдореЗрд╢рд╛ рдпрд╣ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬреЗрд╡реАрдПрдо рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрд▓реИрдХ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕реНрдкрд╛рд░реНрдХ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕реНрдХрд╛рд▓рд╛ рдХреЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкрд╛рд░реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реИрдореНрдмреНрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдЬрд╛рд╡рд╛ 8 рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдЬреЗрдбреАрдХреЗ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкрд╛рд╕ org.apache.spark.api.java.function рдкреИрдХреЗрдЬ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рджреВрд╕рд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЫреЛрдЯреА рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдбрд╝рддрд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдХрдХреНрд╖рд╛ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХрд░рддреЗ рд╕рдордп рдпрд╛ рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░рдбреАрдбреА рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдбрдмрд▓ рдФрд░ рдЯреНрдпреВрдкрд▓ рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИ)ред рдРрд╕реЗ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдорддреБрд▓реНрдп рдареЛрд╕ рдХрдХреНрд╖рд╛рдПрдВ рдЕрдХреНрд╕рд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВред рдбрдореА рд╢реНрд░реЗрдгреА рдХреЗ рдЯреИрдЧ (рдХрд╣рддреЗ рд╣реИрдВ, AnyRef) рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрдЧ рдЯреИрдЧ (рдЕрдХреНрд╕рд░ рдПрдбреЗрдкреНрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрдореА рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдХреБрдЫ рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдПрдкреАрдЖрдИ рдЧрд╛рдпрдм рд╣реИрдВред рдЕрдиреНрдп JVM рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ, рдЬреИрд╕реЗ рдХрд┐ рдбреАрдПрд╕рдПрд▓ рдлреНрд▓рдореНрдмреЛ рдФрд░ рд╕реНрдкрд╛рд░реНрдХрд▓рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХреНрд▓реЛрдЬрд░ рднрд╛рд╖рд╛, рд╕реАрдзреЗ рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреИрд░-рдЬреЗрд╡реАрдПрдо рдЬреИрд╕реЗ рдкрд╛рдпрдерди рдФрд░ рдЖрд░, рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╡рд░реНрдЧ рдЯреИрдЧ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрдкрд▓ рдпрд╛ рджреЛрд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, mapToDouble рдпрд╛ mapToPair)ред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ; рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдпреЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ, рдЬреИрд╕реЗ рдХрд┐ JavaDoubleRDD рдФрд░ JavaPairRDD, рдХреЛ рд╕реНрдХреИрд▓рд╛ рднрд╛рд╖рд╛ рд░реВрдкрд╛рдВрддрд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

рдЪрд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ (рдЙрджрд╛рд╣рд░рдг 7.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢рдмреНрдж рдЧрдгрдирд╛ рдХреЗ рд╡рд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛ рд╕реЗ рд╕реНрдХрд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдХрднреА-рдХрднреА рдПрдХ рдХрдард┐рди рдХрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдкрд╛рд░реНрдХ рдЬрд╛рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдкреАрдЖрдИ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рд╕реНрдХреИрд▓рд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╡рд░реНрдЧ рдЯреИрдЧ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЬрд╛рд╡рд╛ рдПрдбреЗрдкреНрдЯрд░ рдПрдХ рдмрд╣реБрдд рдкрддрд▓реА рдкрд░рдд рд╣реИ, рдФрд╕рддрди рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 7.1 рд╢рдмреНрдж рдЧрдгрдирд╛ (рдЬрд╛рд╡рд╛)

import scala.Tuple2;  import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaPairRDD import org.apache.spark.api.java.JavaSparkContext;  import java.util.regex.Pattern; import java.util.Arrays;  public final class WordCount { private static final Pattern pattern = Pattern.compile(" ");  public static void main(String[] args) throws Exception { JavaSparkContext jsc = new JavaSparkContext(); JavaRDD<String> lines = jsc.textFile(args[0]); JavaRDD<String> words = lines.flatMap(e -> Arrays.asList(                                           pattern.split(e)).iterator()); JavaPairRDD<String, Integer> wordsIntial = words.mapToPair(  e -> new Tuple2<String, Integer>(e, 1));   } } 

рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ RDDs рдХреЛ Scala RDDs рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЕрдХреНрд╕рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рдореЗрдВ рдореВрд▓ рд╕реНрдкрд╛рд░реНрдХ рдЧреБрдг рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛ рдЖрд░рдбреАрдбреА рдХреЛ рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЗрди рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдЖрд░рдбреАрдбреА рдХреЛ рд╕реНрдХрд╛рд▓рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрдирдкреБрдЯ рдкрд░ рдирд┐рдпрдорд┐рдд рдЖрд░рдбреАрдбреА рд╕реНрдкрд╛рд░реНрдХ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрд░рдбреАрдбреА () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЖрд░рдбреАрдбреА рд╕реНрдХреИрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░ рдпрд╣ рдХрд┐рд╕реА рднреА рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдХрд╛рд▓рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрд░рдбреАрдбреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ; рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЕрдкрд╡рд╛рдж рд╕реНрдХреИрд▓рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВ, рдЬреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдПрдбреЗрдкреНрдЯрд░ рд▓рд┐рдЦрдирд╛ рд╣реИред рдпрджрд┐ рд╕реНрдХреЗрд▓рд╛ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк JavaConverters рд╡рд░реНрдЧ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбрдореА рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдбрдореА рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк scala.reflect.ClassTag $ .MODULE $ .AnyRef () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ scala.reflect.ClassTag $ .MassULE $ .apply (CLASS) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг 7.2 рдФрд░ 7.3 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рд╕реЗ рдЖрд░рдбреАрдбреА рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЕрдХреНрд╕рд░ рд╕реНрдкрд╛рд░реНрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреА рд╣реИред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд╛рдЖрд░рдбреАрдбреА рд╡рд░реНрдЧ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрд▓рдн рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдЗрд░рд╛рджрд╛ рд╕реНрдХреИрд▓рд╛ рдХреЛрдб рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдбрдореА рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЬреЗрдиреЗрд░рд┐рдХ рдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдЕрдЬреНрдЮрд╛рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреИрдЧ рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрдХрд╛рд▓рд╛ рдХреЛрдб рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ; рдмрд╣реБрдд рд╣реА рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реНрдХрд╛рд▓рд╛ рдХреЛрдб рдХреЛ рд╕рдЯреАрдХ рдХрдХреНрд╖рд╛ рдЯреИрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ рдРрд╕реЗ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг 7.2ред рдЬрд╛рд╡рд╛ / рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рдХреЛ рдбрдореА рдХреНрд▓рд╛рд╕ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдмрдирд╛рдирд╛

 public static JavaPairRDD wrapPairRDDFakeCt( RDD<Tuple2<String, Object>> RDD) { //       AnyRef тАФ   //        , //        , //        //    ClassTag<Object> fake = ClassTag$.MODULE$.AnyRef(); return new JavaPairRDD(rdd, fake, fake); } 

рдЙрджрд╛рд╣рд░рдг 7.3ред рдЬрд╛рд╡рд╛ / рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛

 public static JavaPairRDD wrapPairRDD( RDD<Tuple2<String, Object>> RDD) { //    ClassTag<String> strCt = ClassTag$.MODULE$.apply(String.class); ClassTag<Long> longCt = ClassTag$.MODULE$.apply(scala.Long.class); return new JavaPairRDD(rdd, strCt, longCt); } 

рд╕реНрдкрд╛рд░реНрдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдФрд░ рдПрдордПрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдПрдкреАрдЖрдИ рджреЛрдиреЛрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдереЗ рдЬреЛ рдЬрд╛рд╡рд╛ рдФрд░ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рдереЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╛рд╡рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд╕рдорддреБрд▓реНрдп рд╕реНрдХреИрд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ: рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХрд╛рд░реНрдп, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд▓рд╕, рдорд╛рдЗрдирд╕, рдЖрджрд┐, рд╕реНрддрдВрдн рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдПред рд╕реНрдХреЗрд▓ рднрд╛рд╖рд╛ (+, -) рд╕реЗ рдЙрдирдХреЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕рдордХрдХреНрд╖реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред JavaDataFrame рдФрд░ JavaSQLContext рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, Java- рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЗ SQLContext рдФрд░ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд╡рд╛ рдХреЛрдб рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди (UDFs), рдФрд░ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдХрдЯреМрддреА рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рд╕рдорд╛рди рднрд╛рд╖рд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг 7.4) ред

рдЙрджрд╛рд╣рд░рдг 7.4ред рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдпреВрдбреАрдПрдл рдирдореВрдирд╛

 sqlContext.udf() .register("strlen", (String s) -> s.length(), DataTypes.StringType); 

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдХрд╛рд▓рд╛ рдФрд░ рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИрдВ, рдЬрд╛рд╡рд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдбреЗрдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╡рд┐рд▓рдВрдмрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддрддреНрд╡ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдкрд╛рд░реНрдХ рдврд╛рдВрдЪреЗ рдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ "MapPartitions рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреЗрдЬ 121 рдкрд░")ред рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рд▓рд╛рдЧрдд рд╕реНрд╡рдпрдВ рдХреА рд▓рд╛рдЧрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕реНрдХрд╛рд▓рд╛ рдФрд░ рдЬреЗрд╡реАрдПрдо рд╕реЗ рдкрд░реЗ


рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЬреЗрд╡реАрдПрдо рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд░реНрддрдорд╛рди рд╕реНрдкрд╛рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде, рдЬреЗрд╡реАрдПрдо рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдирд╛ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдо рдиреЛрдбреНрд╕ рдкрд░ - рдЬреЗрд╡реАрдПрдо рдФрд░ рд▓рдХреНрд╖реНрдп рднрд╛рд╖рд╛ рдХреЛрдб рдХреЗ рдмреАрдЪ рдХрд╛рдо рдиреЛрдбреНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдЧрдд рдмрдврд╝ рд╕рдХрддреА рд╣реИред рдЬрдЯрд┐рд▓ рдСрдкрд░реЗрд╢рди рдореЗрдВ, рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреБрд▓ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд▓рд╛рдЧрдд рдХрд╛ рджреЛрдЧреБрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рдмрд╛рд╣рд░ рд╕реАрдзреЗ рд╕рдорд░реНрдерд┐рдд рдкрд╣рд▓реА рдЧреИрд░-рдЬреЗрд╡реАрдПрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдкрд╛рдЗрдерди рд╣реИ, рдЗрд╕рдХрд╛ рдПрдкреАрдЖрдИ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЙрдбрд▓ рдмрди рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЕрдиреНрдп рдЧреИрд░-рдЬреЗрд╡реАрдПрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред

рдХреИрд╕реЗ PySpark рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


PySpark, JVM Spark рдХреЛ рд╢реНрд░рдорд┐рдХреЛрдВ рдкрд░ рдЪреИрдирд▓реЛрдВ рдФрд░ Py4J, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ Python / Java рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рддрд╣рдд, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕рд╛рдзрд╛рд░рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрдЯрд┐рд▓ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдмрджреМрд▓рдд PySpark рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдВрдЬреАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред 7.1ред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ: рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реЗ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреА рд╣реИред рдЬреЗрд╡реАрдПрдо рдХреЛ рд╡рд┐рднрд╛рдЬрди рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдФрд░ рдЬрд╛рд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдХреА рдУрд░ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЫрд╡рд┐

PySpark RDD рдХрд┐рдЯ


рдЬреЗрд╡реАрдПрдо рд╕реЗ рдФрд░ рд╕рд╛рде рд╣реА рдкрд╛рдпрдерди рдирд┐рд╖реНрдкрд╛рджрдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд▓рд╛рдЧрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЖрдк DataFrame / Dataset API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PySpark RDD Suite API рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ JVM рдореЗрдВ рдбреЗрдЯрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рддрд╛ рд╣реИред

рдЬреЗрд╡реАрдПрдо рд╕реЗ рдЕрдЬрдЧрд░ рддрдХ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ рд╕реЙрдХреЗрдЯреНрд╕ рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг PipedRDD рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ "рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ" рдЙрдкрдзрд╛рд░рд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП рдЪреИрдирд▓реЛрдВ рдХрд╛ рд╕рдВрдЧрдарди (рджреЛ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ) рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, PySpark Python рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ), рдлрд╝рд┐рд▓реНрдЯрд░ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреАрдЫрд╛ рдХрд░рддреЗ рд╣реБрдП, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдк, рд╡рд┐рд╢реЗрд╖ PipelinedRDr рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП Python рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдЯрд░реЗрдЯрд░ рдкрд░ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдлреЗрд░рдмрджрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ PySpark рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдФрд░ рдЕрдзрд┐рдХ рдзреАрдореА рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрд╣ рдкрд╣реЗрд▓реА рдХрд╛ рд╣реА рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдирд┐рдпрдорд┐рдд PipedRDD рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХреБрдВрдЬреА рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдлреЗрд░рдмрджрд▓ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред PySpark рдореЗрдВ, рдФрд░ рдЗрд╕рдХреА рдЫрд╡рд┐ рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕рдорд╛рдирддрд╛ рдореЗрдВ, PairwiseRDD рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рдПрдХ рд▓рдВрдмрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ, рдФрд░ рдЗрд╕рдХреА deserialization рд╕реНрдХреИрд▓рд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрд╛рдпрдерди рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕ deserialization рдХреА рд▓рд╛рдЧрдд рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкрд╛рд░реНрдХ рдврд╛рдВрдЪреЗ рдореЗрдВ рд╕реНрдХрд╛рд▓рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ "рдЕрдкрд╛рд░рджрд░реНрд╢реА" рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирддрд╛ рд╣реИред

рдЕрдкрдиреА рд╕рднреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХреАрдХрд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХрд╛рд▓рд╛ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрдЪрд╛рд▓рди рдкрд╛рдпрдерди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдХреЛрдб рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдХрдард┐рди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдордПрд▓рд▓рд┐рдм, рд╕рд╛рде рд╣реА рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб / рд╕реЗрд╡ рдХрд░рдирд╛ред

рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рднреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкрд╛рд░реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб / рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ Hadoop рдЬрд╛рд╡рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкрд╣рд▓реЗ JVM рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдкрд╛рдпрдерди рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдорддреМрд░ рдкрд░ рдПрдордПрд▓рд▓рд┐рдм рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ рдкрд╛рдЗрд╕реНрдкрд╛рд░реНрдХ рд╕реНрдХреИрд▓рд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд╛рдпрдерди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдкрд╛рд░реНрдХ рдПрдордПрд▓ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо / рдбреЗрдЯрд╛рд╕реЗрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред

PySpark DataFrame рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд┐рдЯ


DataFrame рдФрд░ Dataset рд╕реЗрдЯ рдореЗрдВ Python RDD рд╕реЗрдЯ API рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ JVM рдореЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣реА рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдЬреЛ рд╣рдордиреЗ RDD рд╕реЗрдЯ (рджреЗрдЦреЗрдВ рдЪрд┐рддреНрд░ 3.1) рдкрд░ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗрдЯ рдХреА рд╢реНрд░реЗрд╖реНрдарддрд╛ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЬрдм рдкрд╛рдпрдерди (рдЪрд┐рддреНрд░ 7.2) рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐

DataFrame рдФрд░ Dataset рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ JVM рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди UDF, UDAF рдФрд░ рдкрд╛рдпрдерди рд▓реИрдореНрдмреНрдбрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ JVM рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓реАрдХреГрдд рдпреЛрдЬрдирд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдВрдЬреАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред 7.3ред

рдЫрд╡рд┐

рд╕реНрдХреИрд▓рд╛ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдорд┐рд╢реНрд░рд┐рдд рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ


рдкрд╛рдЗрд╕реНрдкрд╛рд░реНрдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдкрд╛рд░реНрдХ рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЛрдб рд╕реЗ рдХреЙрд▓ рдХреЛ рдПрдХ рдЬреЗрд╡реАрдПрдо рдлреЙрд░реНрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рд╕реНрдХрд╛рд▓рд╛ / рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдПрдбреЗрдкреНрдЯрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рдЬрд╛рд╡рд╛ / рд╕реНрдХрд╛рд▓рд╛ рдпреВрдбреАрдПрдл рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдпрдерди рдХреЛрдб рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдкрд╛рд░реНрдХ 2.1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдпрд╣ sqlContext рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ registerJavaFunction рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХрднреА-рдХрднреА рдЗрди рдПрдбрд╛рдкреНрдЯрд░реЛрдВ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди рдХреЗ рдкрд╛рд╕ рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдордЬрдмреВрдд рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рддреБрд░рдВрдд рдЬреЗрд╡реАрдПрдо рдХреА рдУрд░ рдореБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣реА рддрдХрдиреАрдХ рдЖрдкрдХреЛ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░, рдереЛрдбрд╝реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ред

"рдмрдбрд╝реА рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдкреГрд╖реНрда рдкрд░ рдЙрдкрдзрд╛рд░рд╛ рдореЗрдВред 91 рд╣рдордиреЗ рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдФрд░ рдЖрд░рдбреАрдбреА рд╕реЗрдЯ рдХреЗ рдЬреЗрд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдиреЛрдЯ рдХрд┐рдпрд╛ред рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкрд╛рд░реНрдХ SQL рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрдм рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ SQL рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░, RDD рдХреЛ рдмреАрдЪ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг, RDD рдореЗрдВ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд▓ рд╕реЗ рдкрд░реЗ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ рдХреА рдорджрдж рд╕реЗ рдПрдХ рд╣реА рдЪреАрдЬ рд╣рд╛рд╕рд┐рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗрдЯ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рдЦреЛ рдЬрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рдпрдерди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдХреЗ рдореВрд▓ рдЧреНрд░рд╛рдл рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг 7.5 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдЙрджрд╛рд╣рд░рдг 7.5 рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рдирд╛

 def cutLineage(df): """    DataFrame тАФ     .. :              >>> df = RDD.toDF() >>> cutDf = cutLineage(df) >>> cutDf.count() 3 """ jRDD = df._jdf.toJavaRDD() jSchema = df._jdf.schema() jRDD.cache() sqlCtx = df.sql_ctx try: javaSqlCtx = sqlCtx._jsqlContext except: javaSqlCtx = sqlCtx._ssql_ctx newJavaDF = javaSqlCtx.createDataFrame(jRDD, jSchema) newDF = DataFrame(newJavaDF, sqlCtx) return newDF 

рдЖрдо рддреМрд░ рдкрд░, рдХрдиреНрд╡реЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛, _j [рд╕рдВрдХреНрд╖рд┐рдкреНрдд_рдирд╛рдо] рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SparkContext рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ _jsc рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ SparkContext рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк PySpark рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдиреЛрдбреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрдВрддрд░рд┐рдХ рдЬрд╛рд╡рд╛ рдШрдЯрдХ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреАрдЖрдИ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдЬреЗрд╡реАрдПрдо рдореЗрдВ рд╕реНрдкрд╛рд░реНрдХ рдХреНрд▓рд╛рд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди рдПрдбрд╛рдкреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ Py4J рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред SparkContext рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреЗрдЯрд╡реЗ рдХреЗ рдкрд╛рд╕ _gateway рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ sc._gateway.jvmред [Full_class_name_in_JVM] рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдПрдХ рд╕рдорд╛рди рддрдХрдиреАрдХ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдХрд╛рд▓рд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧреА рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рд╕рдкрд╛рде рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд╕реНрдкрд╛рд░реНрдХ-рдЬрдорд╛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде --jars рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ spark.driver.extraClassPath рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реНрдкрд╛рд░реНрдХ-рдЬрдорд╛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JAR рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг 7.6, рдЬрд┐рд╕рдиреЗ рдЪрд╛рд╡рд▓ рдкреИрджрд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред 7.2, рдЬрд╛рдирдмреВрдЭрдХрд░ рдореМрдЬреВрджрд╛ рд╕реНрдХрд╛рд▓рд╛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг 7.6 Py4J рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреИрд░-рд╕реНрдкрд╛рд░реНрдХ-рдЬреЗрд╡реАрдПрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛

 sc = sqlCtx._sc #  SQL Context,   2.1, 2.0   , #  2.0, тАФ  ,   :p try: try: javaSqlCtx = sqlCtx._jsqlContext except: javaSqlCtx = sqlCtx._ssql_ctx except: javaSqlCtx = sqlCtx._jwrapped jsc = sc._jsc scalasc = jsc.sc() gateway = sc._gateway #  java-,   RDD JVM- # Row (Int, Double).   RDD  Python   #  RDD  Java (   Row),   # ,      . #   Java-RDD  Row тАФ     #    DataFrame,     #    RDD  Row. java_rdd = (gateway.jvm.com.highperformancespark.examples. tools.GenerateScalingData. generateMiniScaleRows(scalasc, rows, numCols)) #     JSON     . #  Python-     Java-. schema = StructType([ StructField("zip", IntegerType()), StructField("fuzzyness", DoubleType())]) #   2.1 /  2.1 try: jschema = javaSqlCtx.parseDataType(schema.json()) except: jschema = sqlCtx._jsparkSession.parseDataType(schema.json()) #  RDD (Java)  DataFrame (Java) java_dataframe = javaSqlCtx.createDataFrame(java_rdd, jschema) #  DataFrame (Java)  DataFrame (Python) python_dataframe = DataFrame(java_dataframe, sqlCtx) #  DataFrame (Python)   RDD pairRDD = python_dataframe.rdd.map(lambda row: (row[0], row[1])) return (python_dataframe, pairRDD) 


рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ рдкрд╛рдпрдерди рдХрдХреНрд╖рд╛рдПрдВ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмрд╕ рдПрдбреЗрдкреНрдЯрд░ рд╣реИрдВ, рд╕рднреА рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдирд╣реАрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PySpark RDD рд╕реЗрдЯ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, DataFrame рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ DataFrame рд╕реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ Python рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╛ рддреЛ рд╕реАрдзреЗ Python DataFrame рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА Python DataFrame рдХреЛ рдЗрд╕ RDD рдХреЗ RDD рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рд╣реА рднрд╛рд╖рд╛

┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
┬╗ рд╕рд╛рдордЧреНрд░реА
┬╗ рдЕрдВрд╢

рд╕реНрдкреНрд░реЗрдпрд░ - рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреВрдкрди рдкрд░ 20% рдХреА рдЫреВрдЯ

Source: https://habr.com/ru/post/hi414525/


All Articles