ÔÚµ±½ñÐÅÏ¢±¬Õ¨µÄʱ´ú£¬Êý¾ÝÒѳÉΪÆóÒµÉú³¤µÄ½¹µãÇý¶¯Á¦¡£ÈçºÎ¸ßЧµØ´æ´¢¡¢´¦Öóͷ£ºÍ·ÖÎöº£Á¿Êý¾Ý£¬³ÉΪÐí¶àÆóÒµÃæÁÙµÄÅäºÏÄÑÌâ¡£ApacheSpark£¬×÷Ϊһ¿î¿ìËÙ¡¢Í¨ÓõĴóÊý¾Ý´¦Öóͷ£ÒýÇæ£¬ÒÔÆäÇ¿´óµÄÂþÑÜʽ´¦Öóͷ£ÄÜÁ¦ºÍ¸»ºñµÄÉú̬ϵͳ£¬³ÉΪҵ½çµÄ³è¶ù¡£
±¾ÎĽ«´Ó¾ßÌå¡°examples¡±£¨Ê¾Àý£©³ö·¢£¬ÉîÈë½éÉÜApacheSparkµÄÓ¦Óó¡¾°ºÍʵ¼Ê²Ù×÷£¬ÎªÄú´ò¿ªÒ»ÉÈÀí½âÓëÕÆÎÕ´óÊý¾ÝµÄ´°¿Ú¡£
Ò»¡¢ÎªÊ²Ã´Ñ¡ÔñApacheSpark£¿ApacheSparkµÄ·ºÆð£¬³¹µ×¸Ä±äÁË´«Í³´óÊý¾Ý´¦Öóͷ£·½Ê½¡£Ïà±ÈÓÚHadoopMapReduceµÄÅú´¦Öóͷ£Ä£Ê½£¬Spark¾ß±¸¸ßËÙÄÚ´æÅÌËãµÄÓÅÊÆ£¬¼«´óÌáÉýÁËÈÎÎñµÄ´¦Öóͷ£Ð§ÂÊ¡£ÔÚÐí¶àʵʱ·ÖÎö¡¢»úеѧϰ¡¢Í¼ÅÌËãµÈ³¡¾°ÖУ¬SparkÕ¹ÏÖÁËÓÅÒìµÄÐÔÄܺÍÁé»îÐÔ¡£
¶þ¡¢»ù´¡ÈëÃÅ£ºSparkÔÚ´óÊý¾Ý·ÖÎöÖеÄÓ¦ÓÃʾÀýÏëÏóÒ»¸öÆóÒµÐèÒª·ÖÎöÿÈյĽ»Ò×Êý¾Ý£¬´Óº£Á¿Êý¾ÝÖÐÌáÈ¡ÓмÛÖµµÄÐÅÏ¢¡£´«Í³·½°¸¿ÉÄÜÐèÒªãýÃðÊýСʱÉõÖÁ¸ü³¤Ê±¼ä£¬µ«½èÖúSpark£¬Ö»Ð輸·ÖÖÓ¼´¿ÉÍê³É¡£ÒÔÒ»¸ö¼òÆÓµÄÀý×Ó˵Ã÷£º¼ÙÉèÎÒÃÇÓÐÒ»¸ö°üÂÞÒÚ¼¶±ð½»Ò׼ͼµÄÎļþ£¬ÏëÖªµÀÿ¸öÓû§Ã¿ÈÕµÄÏû·Ñ×ܶ
Êý¾Ý¶ÁÈ¡£ºÀûÓÃSparkµÄreadAPI£¬½«Êý¾Ý¼ÓÔØµ½DataFrameÖС£Êý¾ÝɸѡºÍת»»£ºÉ¸Ñ¡³öÐèÒª·ÖÎöµÄ×ֶΣ¬ºÃ±ÈÓû§ID¡¢½»Ò×½ð¶î¡¢ÈÕÆÚ£¬È»ºóÓÃgroupBy½øÐзÖ×é¡£¾ÛºÏÅÌË㣺ÀûÓÃsumº¯Êý£¬¿ìËÙÅÌËã³öÿ¸öÓû§Ã¿ÈÕµÄÏû·Ñ×ܶ
½á¹ûÊä³ö£º½«½á¹ûÉú´æµ½Êý¾Ý¿â»òÎļþÖУ¬ÊµÏÖһվʽµÄÊý¾ÝÁ÷¡£
ÕâÒ»Á÷³Ì£¬ÀûÓÃSparkµÄÂþÑÜʽÅÌËãÄÜÁ¦£¬ÏÕЩ¿ÉÒÔÔÚÃë¼¶Íê³É¡£¶øÕâÑùµÄ°¸ÀýÔÚʵ¼ÊÒµÎñÖм«Îª³£¼û£¬²»¹ÜÊǵçÉÌ¡¢½ðÈÚÕÕ¾ÉÉ罻ƽ̨£¬¶¼¿ÉÒÔ½èÖúSparkʵÏÖÊý¾ÝµÄÉî¶ÈÍÚ¾ò¡£
Èý¡¢ÅÓ´ó°¸Àý£º»úеѧϰÓë´óÊý¾ÝµÄ½áºÏ³ýÁË»ù±¾µÄÊý¾Ý·ÖÎö£¬Spark»¹Ö§³Ö¸»ºñµÄ»úеѧϰ¿â¡ª¡ªMLlib¡£ºÃ±È£¬½øÐÐÓû§ÐÐΪԤ²â¡¢ÐÅÓÃÆÀ·Ö¡¢ÍƼöÄ£Ð͵ȣ¬ÕâЩ¶¼Àë²»¿ª´óÁ¿µÄѵÁ·Êý¾Ý¡£
Êý¾ÝÔ¤´¦Öóͷ££ºÇåÏ´Óû§ÐÐΪÊý¾Ý£¬´¦Öóͷ£È±Ê§ÖµºÍÒì³£Öµ¡£ÌØÕ÷¹¤³Ì£ºÌáÈ¡Óû§»îÔ¾¶È¡¢¹ºÖÃÆµ´Î¡¢ÀúÊ·ÐÐΪµÈÌØÕ÷¡£Ä£ÐÍѵÁ·£ºÀûÓÃMLlibÖеÄËæ»úÉÁÖ¡¢Âß¼»Ø¹éµÈËã·¨£¬ÑµÁ·Ô¤²âÄ£ÐÍ¡£Ä£ÐÍÆÀ¹À£ºÍ¨¹ý½»Ö¯ÑéÖ¤µÈÊֶΣ¬ÓÅ»¯Ä£ÐͲÎÊý¡£
È«²¿Á÷³Ì¶¼¿ÉÒÔÔÚSparkÇé¿öÖÐÍê³É£¬³äʵÀûÓÃÆäÄÚ´æÅÌËãÄÜÁ¦£¬ÏÔÖøËõ¶ÌÄ£ÐÍѵÁ·Ê±¼ä¡£ÆóÒµÖ»ÐèÉÙÁ¿µ÷Õû¼´¿ÉÒÔ²¿Êðµ½Éú²úϵͳÖУ¬¸æ¿¢ÊµÊ±Ô¤¾¯ÓëÖÇÄܾö²ß¡£
ËÄ¡¢Í¼ÅÌËãºÍʵʱ¼à¿ØµÄÓ¦ÓÃʾÀýÔÚÉç½»ÍøÂç¡¢½»Í¨¼à¿Ø¡¢½ðÈÚ·çÏÕÖÎÀíµÈ³¡¾°ÖУ¬Í¼ÅÌËãÓÈÆäÖØÒª¡£ÀýÈ磬·ÖÎöÅÓ´óÉç½»¹ØÏµÍø£¬¼ì²âDZÔÚµÄÒì³£ÐÐΪ¡¢ÆÛÕ©Á´Ìõ¡£
½èÖúGraphX£¨SparkµÄͼÅÌËãÄ£¿é£©£¬¿ÉÒÔ£º
»æÖÆÉç½»¹ØÏµÍ¼£¬·ÖÎö½Úµã¼äµÄÁ¬½ÓÇ¿¶È¡£Ê¶±ðÉçÇø¡¢½¹µã½Úµã£¬Á˽âÍøÂç½á¹¹¡£ÍÚ¾òDZÔÚ×ÌÈÅ»ò·çÏյ㣬ÌáǰԤ¾¯¡£
Ôٺñȣ¬ÊµÊ±½ðÈÚ½»Ò×¼à¿Ø£¬Ò²ÄÜͨ¹ýSparkStreamingʵÏÖ¡£²¶×½Òì³£½»Ò×ÐÐΪ£¬¿ì½Ý·´Ó³£¬Î¬»¤Êг¡ÖÈÐò¡£
Î塢ʵÓù¤¾ßºÍʾÀý£º¿ìËÙÉÏÊÖµÄÖ¸ÄÏÏëʹÓÃSparkʵÏÖÕâЩӦÓã¬Ê×ÏÈÒª×öµÄÊÇÅäÖÃÇé¿ö£¬°üÂÞ°²×°Spark¡¢Hadoop£¨¿ÉÑ¡£©¡¢ÒÔ¼°Ïà¹ØÒÀÀµ¡£Ö®ºó£¬´Ó¹Ù·½ÌṩµÄʾÀý´úÂ루ÔÚGitHubµÈƽ̨£©ÈëÊÖ£¬Öð²½Àí½â´úÂëÂß¼£ºÊý¾Ý¼ÓÔØ¡¢×ª»»¡¢²Ù×÷¡¢Êä³ö¡£
ʹÓÃSparkSQL½øÐÐÅÓ´ó²éѯ¡£ÀûÓÃDataFrameAPI½øÐÐÊý¾Ý²Ù×÷¡£Ê¹ÓÃRDD½øÐÐµ×²ã¿ØÖÆ¡£½áºÏPySpark¡¢SparkR½øÐдúÂëµÄ¶àÑùÐÔ¿ª·¢¡£
ÕâЩ»ù´¡Ê¾Àý¿ÉÒÔ×ÊÖú³õѧÕß¿ìËÙ½¨É衰ʵս¸Ð¡±£¬Öð²½ÉîÈëµ½ÅÓ´óµÄÆóÒµ¼¶ÏîÄ¿ÖÐÈ¥¡£
Áù¡¢Éú̬ÓëδÀ´£ºSparkµÄÁ¬ÐøÑݽøApacheSparkµÄÉú̬ϽµµÍ¬Ðø×³´ó£¬ÐÂÔöµÄÄ£¿éÈçSparkStreamingʵÏÖʵʱÊý¾Ý´¦Öóͷ£¡¢SparkGraphX½øÐÐÅÓ´óÍøÂç·ÖÎö¡¢SparkMLlibÖ§³ÖÉî¶ÈѧϰµÈ£¬ÎÞÒ»²»ÌåÏÖ³öËüµÄÇ¿´ó¶¯Á¦¡£
δÀ´£¬Ëæ×ÅÔÆÅÌËãºÍAIµÄÉú³¤£¬Spark½«¼ÌÐøÓÅ»¯Ó²¼þÀûÓÃÂÊ£¬Ö§³Ö¸ü¸ßЧµÄ¼Ü¹¹Éè¼Æ¡£
×ܽáһϣ¬ÀûÓø»ºñµÄʾÀý£¨examples£©£¬ÎÒÃÇ¿ÉÒÔÖ±¹ÛÀí½âºÍÕÆÎÕSparkµÄÇ¿´óÄÜÁ¦¡£´Ó»ù´¡µÄÊý¾Ý´¦Öóͷ£µ½ÅÓ´óµÄ»úеѧϰ¡¢Í¼·ÖÎö£¬ÔÙµ½ÊµÊ±´óÊý¾ÝÓ¦Óã¬Spark¶¼ÊÇһվʽ½â¾ö·½°¸¡£ÕÆÎÕÕâЩµäÐͰ¸Àý£¬Òâζ×ÅÄã¿ÉÒÔÔÚÊý¾ÝÇý¶¯µÄÊÀ½çÖУ¬ÓÎÈÐÓÐÓà¡£
ÔÚÉÏÒ»²¿ÃÅ£¬ÎÒÃÇÉîÈëÁ˽âÁËApacheSparkµÄÖÖÖÖÓ¦Óð¸ÀýºÍ»ù´¡²Ù×÷£¬ÎªÊµ¼Ê²Ù×÷´òÏÂÁ˼áʵµÄ»ù´¡¡£¶øÕâÒ»²¿ÃÅ£¬ÎÒÃǽ«¼ÌÐøÌ½Ë÷¸ü¸ß½×µÄÓ¦Óó¡¾°¡¢×î¼Ñʵ¼ùÒÔ¼°Î´À´Éú³¤Ç÷ÊÆ£¬×ÊÖúÄãÔÚ´óÊý¾ÝÕâÆ¬ÁÉÀ«µÄÁìÓòÖиü½øÒ»²½£¬½«ÀíÂÛÂ䵽ʵ´¦¡£
Ò»¡¢ÆóÒµ¼¶´óÊý¾Ýƽ̨µÄ½¨É衪¡ªÒÔ°¸ÀýΪµ¼ÏòµÄʵ¼ù¾ÑéÐí¶àÆóÒµÔÚʵÏÖ´óÊý¾ÝÕ½ÂÔʱ£¬Óöµ½µÄ×î´óÌôÕ½ÊǼܹ¹Éè¼ÆÓëÐÔÄÜÓÅ»¯¡£ÀýÈ磬һ¼ÒµçÉ̾ÞÍ·ÔÚÈÕ³£ÒµÎñÖлýÀÛÁ˺£Á¿µÄÓû§ÐÐΪÊý¾Ý¡£Í¨¹ýÒýÈëSpark£¬ËûÃDz»½öʵÏÖÁËÿÈÕÒ¹¼äÅúÁ¿·ÖÎö£¬»¹ÀÖ³ÉÍÆÐÐÁËÊµÊ±ÍÆ¼öϵͳ¡£
Êý¾ÝÊÕÂ޲㣺ʹÓÃKafkaµÈÏûÏ¢ÐÐÁнøÐÐʵʱÊý¾ÝÁ÷Èë¡£Êý¾Ý´æ´¢²ã£º½ÓÄÉHDFS»òÔÆ´æ´¢£¬±£ÕϺ£Á¿Êý¾ÝµÄÄþ¾²´æ·Å¡£ÅÌËã²ã£º»ùÓÚSparkStreamingʵÏÖʵʱÊý¾Ý´¦Öóͷ££¬ÀûÓô°¿Ú»úÖÆÊµÊ±·ÖÎöÓû§ÐÐΪ¡£»úеѧϰ£ºÁ¬ÐøÑµÁ·Óû§»ÏñÄ£ÐÍ£¬ÎªÇ°¶ËÍÆ¼öÌṩ֧³Ö¡£
ÕâÌ׼ܹ¹£¬¼«´óÔöÇ¿ÁËÆóÒµµÄÊý¾ÝÇý¶¯Á¦¡£Í¨¹ý²»Í£ÓÅ»¯Spark×÷ÒµµÄµ÷ÖκÍ×ÊÔ´ÅäÖã¬ÈÃÕûÌåÐÔÄÜÁ¬ÐøÌáÉý£¬ÕÆÎÕ¸ü¿ì¸ü×¼µÄÊý¾Ý·ÖÎö½Ú×à¡£
¶þ¡¢ÅÓ´óÊý¾Ý¼¯µÄ¸ß¼¶´¦Öóͷ£¼¼ÇÉ¡ªÊ¾Àý½âÎöÃæ¶Ô¸ßά¡¢ÅÓ´ó¡¢¶àÔ´µÄÊý¾Ý¼¯£¨ºÃ±ÈÉ罻ýÌåÊý¾Ý»ò¶àģ̬Êý¾Ý£©£¬µ¥´¿µÄ³ß¶È´¦Öóͷ£ÒÑÎÞ·¨Âú×ãÐèÇó¡£´Ëʱ£¬½áºÏʾÀý£¬ÎÒÃÇ¿ÉÒÔѧϰһЩ¼¼ÇÉ£º
¶à¼¶Êý¾Ý´¦Öóͷ££ºÀûÓÃSparkµÄ·Ö²ã½á¹¹£¬ÏÈÔÚRDDÉϽøÐмòªɸѡ£¬ÔÙÓÃDataFrame½øÐÐϸ½Ú´¦Öóͷ£¡£×Ô½ç˵º¯Êý£º±àдUDF£¨Óû§½ç˵º¯Êý£©£¬´¦Öóͷ£ÌØÊâµÄÎı¾¡¢Ê±¼ä»¨Ñù»òÌØÕ÷±àÂë¡£ÓÅ»¯Á¬½Ó²Ù×÷£ºÊ¹ÓÃBroadcastjoinsÖÆÖ¹´ó¹æÄ£Êý¾ÝµÄÖØ¸´É¨Ã裬ÌáÉýÐÔÄÜ¡£
Êý¾ÝÏ¡Ê軯ºÍ½µÎ¬£º½áºÏÌØÕ÷Ñ¡Ôñ»òPCA£¬ÌÔÌÊý¾Ýά¶È£¬È·±£Ä£ÐÍЧÂÊ¡£
ÒÔÉç½»ÍøÂçµÄ¹ØÏµÔ¤²âΪÀý£¬Óû§ÌØÕ÷ºÍ¹ØÏµÁ´½Ó¶¼ÊǸßάϡÊè¾ØÕó¡£Í¨¹ýʾÀýʵ¼ù£¬ÎÒÃÇÄÜÕÆÎÕÔÚÅӴ󳡾°ÖпìËÙʵÏÖ²Ù×÷µÄÒªÁ죬ȷ±£Êý¾Ý´¦Öóͷ£¼È¸ßЧÓÖ׼ȷ¡£
Èý¡¢È«Á÷³Ì×Ô¶¯»¯¡ª¡ª´ÓÊý¾Ýµ½Ä£Ð͵ıջ·Êµ¼ùÏÖ´úÆóÒµÔ½À´Ô½ÇãÏòÓÚ×Ô¶¯»¯µÄÊý¾Ý¿ÆÑ§Á÷³Ì£¬´ÓÊý¾ÝÊÕÂÞ¡¢Ô¤´¦Öóͷ££¬µ½½¨Ä£¡¢ÆÀ¹À¡¢²¿Êð£¬ÕæÕýʵÏÖ¡°CodetoProduction¡±¡£
ÀûÓÃSparkµÄ¹ÜµÀ£¨Pipeline£©»úÖÆ·â×°Á÷³Ì²½Ö裬±£Ö¤´úÂ븴ÓÃÐÔ¡£Èںϵ÷Öι¤¾ß£¨ÈçAirflow£©ÊµÏÖ×Ô¶¯»¯µ÷ÖÎºÍ¼à¿Ø¡£½áºÏMLlib½øÐÐÄ£ÐÍѵÁ·ºÍ²ÎÊýµ÷ÓÅ£¬×Ô¶¯Éú³É×îÓÅÄ£ÐÍ¡£ÀûÓÃSparkStreamingʵÏÖʵʱģÐ͸üУ¬ÖÆÖ¹ÊÖ¶¯¸ÉÔ¤¡£
´ÓÓû§ÐÐΪÊÕÂÞ¿ªÊ¼£¬µ½Ä£ÐÍµÄÆµ·±ÉÏÏߣ¬Õâ¸ö±Õ»·Äܹ»Ö§³ÖÁ¬Ðø¸ïУ¬Âú×ãÒµÎñ¿ìËÙÉú³¤µÄÐèÇó¡£
ËÄ¡¢Î´À´Ç÷ÊÆ£ºAIÇý¶¯µÄSparkÉú̬δÀ´£¬Spark½«ÓëÈ˹¤ÖÇÄÜ£¨AI£©Éú̬Éî¶ÈÈںϡ£¾ßÌåÌåÏÖΪ£º
¸ü¼¯³ÉµÄÉî¶Èѧϰ¿ò¼Ü£¨ÈçTensorFlowonSpark£©£¬·½±ã´ó¹æÄ£Ä£ÐÍѵÁ·¡£×Ô¶¯»¯»úеѧϰ£¨AutoML£©¹¤¾ß£¬ÀûÓÃSparkʵÏֶ˵½¶ËµÄÄ£ÐÍ×Ô¶¯ÓÅ»¯¡£±ß¼ÊÅÌËãÓëÔÆÔÉú£ºÖ§³ÖÔÚ±ßÔµÉ豸ºÍÔÆ¶ËÎ޷첿Ê𣬶¯Ì¬µ÷ÖÎ×ÊÔ´¡£
ÓÈÆäÊÇÔÚÊý¾ÝÒþ˽¡¢Ä£ÐͽâÊÍÐԵȷ½Ã棬SparkÉú̬Ҳ»áÒýÈëм¼Êõ£¬Íƶ¯ÐÐÒµ³ß¶ÈµÄÉý¼¶¡£
Î塢ѧϰ·¾¶Óë×ÊÔ´ÍÆ¼ö¡ª¡ª¿ìËÙÉú³¤µÄÃØ¼®ÕÆÎÕÕâЩʾÀýºÍ°¸Àý£¬³ýÁËʵ¼ùÖ®Í⣬»¹ÐèÒªÁ¬ÐøÑ§Ï°ºÍ»ýÀÛ¡£¿ÉÒÔͨ¹ýÒÔÏÂ;¾¶£º
¼ÓÈ뿪ԴÉçÇø£¬¸ú½ø×îеÄSpark°æ±¾ºÍ¹¦Ð§¡£ÔĶÁ¹Ù·½Îĵµ¡¢ÉçÇø²©¿ÍºÍ°¸Àý·ÖÎö£¬¶´²ìÐÐÒµ×î¼Ñʵ¼ù¡£ÔÚGitHubºÍKaggleÉϼÓÈëÏîÄ¿£¬»ýÀÛʵս¾Ñé¡£½áºÏÏßÉϿγ̺ÍÊé¼®£¬ÏµÍ³Ñ§Ï°Spark¼Ü¹¹¡¢Ëã·¨ºÍÓÅ»¯¼¼ÇÉ¡£
Ö»Òª±£³ÖѧϰÈÈÇ飬½«¸»ºñµÄʾÀýÓ¦Óõ½Êµ¼ÊÊÂÇéÖУ¬Äã»á·¢ÏÖ×Ô¼ºÔÚ´óÊý¾ÝÁìÓòµÄÄÜÁ¦ÈÕÒæÌáÉý¡£
Áù¡¢×ܽ᣺ÒÔʾÀýΪÇÅÁº£¬¿ªÆô´óÊý¾ÝÐÂʱ´ú¡°Examples|ApacheSpark¡±²»ÊǼòÆÓµÄ°¸ÀýÜöÝÍ£¬¶øÊÇÒ»ÉÈ´°£¬°ïÄ㿴͸ÅÓ´óµÄÊý¾ÝÊÀ½ç¡£Ã¿Ò»¸öʵÀý¶¼ÕÛÉä³öSparkµÄÇ¿´óÄÜÁ¦ºÍ¹ã·ºÓ¦Ó㬴ӻù´¡·ÖÎö¡¢»úеѧϰ¡¢ÊµÊ±´¦Öóͷ££¬µ½ÆóÒµ¼¶¼Ü¹¹¡¢×Ô¶¯»¯Á÷³Ì£¬²ã²ãµÝ½ø¡£
Àí½âÕâЩʾÀýµÄ±³ºóÂß¼£¬²»½öÈÃÄãѧ»á²Ù×÷£¬¸üÄܶ´Ï¤Éè¼ÆË¼Ï롣δÀ´£¬Åãͬ¼¼ÊõµÄ²»Í£´´Ð£¬ÕÆÎÕÕâЩ¡°Àý×Ó¡±½«³ÉΪÄãÓ¦¶ÔÅÓ´óÊý¾ÝÌôÕ½µÄÎäÆ÷¡£ÔÚÕâ¸ö´óÊý¾ÝÊ¢ÊÀ£¬Ã»Óбȡ°Ê¾Àý¡±¸üºÃµÄÀÏʦ¡£
Ðж¯ÆðÀ´°É¡ª¡ªÓÃʵÀýÇý¶¯ÄãµÄ´óÊý¾ÝÖ®Âã¬ÈÃSparkΪÄ㿪ÆôÎÞÏÞ¿ÉÄÜ£¡