Upgrade to Pro — share decks privately, control downloads, hide ads and more …

分析前処理で手軽に並列処理するために守っておくと良いこと

Aded196e79aeca328942c8b0c817386c?s=47 yasubei
June 15, 2019

 分析前処理で手軽に並列処理するために守っておくと良いこと

1. 対象者
2. 守ると良いルール
3. 集計処理をapply()で組んでおく
4. アウトプット先は分割しておく
5. 行単位の並列化はdaskを使う
6. 大きな単位の並列化はjoblibを使う
7. デモ(時間があれば)
8. まとめ

Aded196e79aeca328942c8b0c817386c?s=128

yasubei

June 15, 2019
Tweet

More Decks by yasubei

Other Decks in Science

Transcript

  1. ࠓ ि ͷ Θ ͔ Β Μ ઌ ੜ Ϛϧνϓϩηε

    ॲཧ͕ Θ͔ΒΜ 1Z%BUB0LJOBXBΦʔΨφΠβʔ ΍͢΂͐
  2. ࣗݾ঺հ :BTVCFJ ΍͢΂͐ ZBTVCFJUXJ ZBTVIBSVTV[VLJ IUUQTIVHLVODPN ΤϯδχΞͰ͢ɻ ࡳຈͰήʔϜ։ൃ೥ɹˠɹԭೄͰ*P5 8&#։ൃ ෼ੳͳͲΛ೥

    )VHLVOͱ)VHLVO%BUBͱ͍͏ձࣾ΍ͬͯ·͢ɻ اۀ͞Μͱֶੜ͞ΜͱҰॹʹ࢓ࣄͯ͠8JO8JO8JOͳؔ܎Λங͘ͷ͕޷͖Ͱ͢ɻ ʮ౳෼ͷՖՇʯΛม૷່ͨ͠ͷਖ਼ղΛ౰ͯͳ͕ΒಡΉͷ͕࠷ۙͷϚΠϒʔϜ ΧϥΦέͰ།Ұ๙ΊΒΕͨۂ͸ʮਓੜ͍Ζ͍Ζʯ
  3. ͱ͍͏Θ͚ͰͭࢠΫʙΠζ

  4. Θ͔Δਓ ɾТɾ ϊγ

  5. ਖ਼ղ     

  6. ΋͏ͪΐͬͱ؆୯ͳ΍ͭ

  7. ͜Μͳײ͡Ͱ͢    

  8. ࢥΘͣ෼ྨͨ͘͠ͳͬͨํ͸ίνϥ IUUQTTQFBLFSEFDLDPNOZBOLPBOENBNFOPLJXVUJKJBODIVGBMTFMJTIJUPNEFUOJZPSV[VJYJOGBMTFBQVSPUJ 63-

  9. ࠓ೔ͷ͓୊

  10. ࠓ೔ͷ͓୊ Ϛϧνϓϩηεॲཧ

  11. ʮͦʔΜͳϞϯ஌ͬͯΔϤʙʯ ͱ͍͏ํ ֶੜͰ΋ଟ͍Μ͡Όͳ͍͔ͱࢥ͍·͢

  12. ͦΕ͕ͳʔ

  13. ҙ֎ͱ૊Ίͳ͍ΜͰ͢Α ɾТɾʆ

  14. ஌ࣝ͸͋Δ͚Ͳ ؆୯ʹ૊Ή΍ΓํΛ஌Βͳ͍ਓ͕ ҙ֎ͱଟ͍ͳ͊ʙͬͯࢥ͏͜ͱ͕ଟ͍ͷͰ ͜ΕΛकΔͱ؆୯ʹ૊ΊΔΑͬͯ ࿩Λ͍ͨ͠ͱࢥ͍·͢ɻ ʢ˞ͨͩ͠ࠓ೔৮ΕΔͷ͸෼ੳ༻Ͱ͢ʣ

  15. :BTVCFJ ΍͢΂͐ ඇಉظϓϩάϥϛϯάͷܦݧ ZBTVCFJUXJ ZBTVIBSVTV[VLJ IUUQTIVHLVODPN ɾֶੜͷ͜ΖόΠτͰϔουϚ΢ϯτσΟεϓϨΠ͔Βͷ৴߸ॲཧΛड৴͢Δ෦෼Λ ɹϚϧνεϨοσΟϯάʢ8JOʣͰهड़ͨ͠ͷ͕࠷ॳ ɹྈੜ׆Ͱྈʹωοτ͕ͳ͘ɺ৘ใऩूʹۤ࿑ͨ͠ ɾ೥͝Ζʹॻ͍ͨωοτରઓ༻ͷϓϩάϥϜ͸$

    Ͱ-JOVY্Ͱ૊ΜͰ·ͨ͠ ɹ΄΅ΦϯϝϞϦͰ௒ߴ଎Ͱͨ͠ ɹฏۉԠ౴଎౓͸NTҎԼ ɾ࠷ۙͰ͸ϏοάσʔλͷલॲཧΛߴ଎Խ͢ΔͨΊʹฒྻԽΛ༻͍Δࣄ͕ଟ͍ ɾԿؾʹKTͰ΋࢖༻ͯ͠·͢Ͷ ɹ7VFKT࢖͏Ҋ͕݅͋Γɺશ෦ͷ"1*ΞΫηε͕ඇಉظ
  16. "HFOEB  ର৅ऀ  कΔͱྑ͍ϧʔϧ  ूܭॲཧΛBQQMZ Ͱ૊ΜͰ͓͘  Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠

     ߦ୯ҐͷฒྻԽ͸EBTLΛ࢖͏  େ͖ͳ୯ҐͷฒྻԽ͸KPCMJCΛ࢖͏  σϞʢ͕࣌ؒ͋Ε͹ʣ  ·ͱΊ
  17. ର৅ऀ Θ ͔ Β Μ 

  18. ର৅ऀ ɾͪΐͬͱϏοάσʔλѻͬͯΔ͚ͲQBOEBTॏ͍ ɾฒྻॲཧॻ͍ͯߴ଎Խ͍͚ͨ͠ͲΠϝʔδ͔ͭΈʹ ࣮ͯ͘͘૷ʹֻ͕͔࣌ؒͬͯ͠·͏ ɾ਺ࣜಘҙ͚ͩͲ1ZUIPOۤखͳ਺ֶՊͷํ

  19. ର৅ऀͷ1ZUIPOϨϕϧ ೖ໳ɹɹ#FHJOOFS ॳڃɹɹ&MFNFOUBSZ தڃɹɹ*OUFSNFEJBUF ४্ڃɹ6QQFS*OUFSNFEJBUF ্ڃɹɹ"EWBODFE ͨͿΜ͜ͷล 1ZUIPO͸ීஈ࢖ͬͯͯ#JH%BUB΋ѻͬͯΔ͚Ͳ ฒྻԽͷ࣮૷্͕ख͘ߦͬͯͳ͍ਓ޲͚

  20. ݸਓతʹΘ͔Γ΍͍͢#JH%BUBͷఆٛ &YDFMͰ։͚ͳ͘ͳͬͨΒ #JH%BUB ˞΋ͪΖΜ*OUFSOBM3FGFSFODFͰ͢

  21. कΔͱྑ͍ϧʔϧ Θ ͔ Β Μ 

  22. कΔͱྑ͍ϧʔϧ ɾQBOEBTΛ࢖͏ ɾूܭॲཧΛBQQMZ Ͱ૊ΜͰ͓͘ ɾΞ΢τϓοτઌ͸෼ׂ͓ͯ͘͠ ɾߦ͝ͱͷॲཧͷฒྻԽ͸EBTLΛ࢖͏ ɾେ͖ͳ୯ҐͷฒྻԽ͸KPCMJCΛ࢖͏

  23. QBOEBTΛ࢖͏ ·͊ͨͿΜΈΜͳ࢖ͬͯΔͷͰίϨ͸͍͍Ͱ͢ΑͶ

  24. ूܭॲཧ͸BQQMZ Ͱ૊ΜͰ͓͘ Θ ͔ Β Μ 

  25. ूܭॲཧ͸BQQMZ Ͱ૊ΜͰ͓͘  ɾEBTLͰͷฒྻԽ͕༰қʹͳΓ·͢ ɾ໊ݴʮGPSจ࢖ͬͨΒෛ͚ͩͱࢥ͍ͬͯΔʯ ɹɹɹʮࢲͷQBOEBT஗͗͢ʯ ɹͦ΋ͦ΋JUUFSPXTͱ͔࢖Θͳ͍Ͱ͢ΑͶʁʢἤΓ

  26. ूܭॲཧ͸BQQMZ Ͱ૊ΜͰ͓͘   GPSจʢΞϯνύλʔϯʣ  ॳΊ͔Βʮॏ͘ͳΓͦ͏ͩͳ͊ʯͱࢥ͍ͬͯΔՕॴʹ͸ GPSจ͸࢖Θͳ͍͜ͱʢܰͦ͏ͳͱ͜Ζ͸GPSͰ΋ྑ͍ʣ IPHF@MJTU<> GPSJOEFY

    SPXJOEGJUUFSPXT  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ IPHF@MJTUBQQFOE IPHF@EBUB   BQQMZจʢྑ͍ύλʔϯʣ  BQQMZʹ͓ͯ͘͜͠ͱࣗମ΋ߴ଎Խʹܨ͕Δ͚Ͳ ͦ΋ͦ΋ฒྻԽ͢Δʹ͸ؔ਺Խ͓ͯ͘͠ͱָ EFGBQQMZ@GVOD SPX  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ SFUVSOIPHF@EBUB IPHF@MJTUEGBQQMZ BQQMZ@GVOD BYJT  #BE #FUUFS GPSจͷྫ BQQMZจͷྫ ˞͋͘·ͰCFUUFSɻCFTUΛ໨ࢦ͢ʹ͸͍Ζ͍Ζͳ΍Γํ͕͋ Δ͕ɺݸਓతʹ͸࢖͍উखͷྑ͍BQQMZ͕ྑ͍ɻ
  27. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠ Θ ͔ Β Μ 

  28. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ͬŋТŋ ͬŲƄŖƃ ͨͱ͑͹Ұ͔݄෼ͷσʔλΛग़ྗ͢Δ৔߹ ԿΒ͔ͷॲཧ ෼͚Δ

  29. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ͬŋТŋ ͬŲƄŖƃ ϓϩηε͝ͱʹग़ྗઌΛ෼͚Δͷ͕ཧ૝ ԿΒ͔ͷॲཧ ͬŋТŋ ͬŲƄŖƃ ͬŋТŋ ͬŲƄŖƃ

                  
  30. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ̑ͭࢠͰΠϝʔδ͢Δͱ͜Μͳײ͡ ݱࡏ ະདྷ աڈ    

              
  31. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ཧ༝ ɾ*0ͷϩοΫɺഉଞ੍ޚ͕ཁΒͳ͘ͳΔ ɹˠͭ·Γɺ஗Ԇ΍σουϩοΫΛߟྀ͢Δඞཁ͕ͳ͘ͳΔ ɹɹɹϑΝΠϧ*0͸ϝϞϦΑΓഒ஗͍ ɹɹɹωοτϫʔΫ*0͸΋ͬͱ஗͍

  32. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ͬŋТŋ ͬŲƄŖƃ Ξϯνύλʔϯ ԿΒ͔ͷॲཧ ෼͚ͳ͔ͬͨ ৔߹

  33. Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ͬŋТŋ ͬŲƄŖƃ ϓϩηεΛ෼͚ͯ΋஗Ԇ͕ൃੜͯ͠͠·͏ ԿΒ͔ͷॲཧ ͬŋТŋ ͬŲƄŖƃ ͬŋТŋ ͬŲƄŖƃ

        
  34. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏ Θ ͔ Β Μ 

  35. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏  EBTLͱ͸ʁ ɾ%BTLͱ͸Ϛϧνϓϩηεͷॲཧ͕؆୯ʹͰ͖Δ 1ZUIPOͷϥΠϒϥϦͰ͢ɻ

  36. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏  ɾBQQMZΛ࢖͍ͬͯΔͷͰ͋Ε͹؆୯ͳमਖ਼ͰEBTLԽͰ ͖·͢ɻ ɾEBTLʹ͸ϚϧνϓϩηεͰฒྻԽ͢Δػೳ͕͋Γɺ؆ ୯ʹฒྻԽͰ͖·͢ɻ ɾ࢖༻͢Δ$16਺Λࢦఆ͢Δ͜ͱ΋ग़དྷ·͢ɻҾ਺Ͱݸ ਺Λࢦఆ͢Δ͚ͩͰඇৗʹखܰͰ͢ɻ

  37. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏   EBTLԽ  ίΞ࢖༻͢ΔEBTL༻%BUB'SBNFΛ࡞੒ JNQPSUEBTLEBUBGSBNFBTEE EEGEEGSPN@QBOEBT EG OQBSUJUJPOT

     EFGBQQMZ@GVOD SPX  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ SFUVSOIPHF@EBUB IPHF@MJTUEGBQQMZ BQQMZ@GVOD BYJT NFUBܕΛࢦఆ  DPNQVUF TDIFEVMFSQSPDFTTFT  EBTLͷྫ  QBOEBTͷBQQMZΛ࢖༻͢Δྫ  લड़ͷBQQMZͱಉ͡ϓϩάϥϜͰ͢ɻ EFGBQQMZ@GVOD SPX  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ IPHF@MJTUEGBQQMZ BQQMZ@GVOD BYJT  BQQMZจͷྫ GSPN@QBOEBTͰม׵ͯ͠ BQQMZ ͢Δ͚ͩ
  38. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏  ҰԠࣄྫͱͯ͠͸ ɹສ݅͘Β͍ͷσʔλΛߜΓࠐΈͳ͕Βूܭ͢Δॲཧ ɹɾTFD ɹɹɹˣEBTLͰฒྻԽˍίΞͷ$16Ͱϑϧճస ɹɾTFD ɹഒΑΓ଎͘ͳͬͨͷ͸Ṗ

  39. ߦ͝ͱͷߴ଎Խ͸EBTLΛ࢖͏  Ξϯνύλʔϯ ɹจࣈྻ಺ͷ୯ޠΛΧ΢ϯτ͢Δॲཧ ɹɾTFD ɹɹɹˣEBTLͰฒྻԽˍίΞͷ$16Ͱϑϧճస ɹɾTFD ɹϚϧνϓϩηεԽ͢Δίετ΋݁ߏߴ͍ͷͰ ɹ୯७ͳॲཧ͸஗͘ͳΔ͜ͱ͕ଟ͍Ͱ͢ɻ

  40. େ͖ͳ୯ҐͷฒྻԽ͸+PCMJCΛ࢖͏ Θ ͔ Β Μ 

  41. େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏  +PCMJCͱ͸ʁ ɾ+PCMJCͱ͸Ϛϧνϓϩηεͷॲཧ͕؆୯ʹͰ͖Δ 1ZUIPOͷϥΠϒϥϦͰ͢ɻ

  42. େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏  ଞͷฒྻॲཧΛ࢖Θͳ͍ཧ༝ ɾ4QBSLˠΊΜͲ͍ʢ޻਺Λަব͢Δඞཁ͕͋Δʣ ɾBTZODΩʔϫʔυ͸$Ͱେݏ͍ͩͬͨ ʢ1ZUIPOͰ͸৯Θͣݏ͍ʣ ɾNVMUJQSPDFTTJOH1SPDFTT͸एׯखܰ͞ʹ͚ܽΔ ʢ࢖͑ͳ͍͜ͱ͸ͳ͍ʣ ͋͘·Ͱݸਓతͳҙݟ

  43. େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏   EBTLԽɹϓϩηεͰॲཧ͠·͢  ίΞ࢖༻͢ΔEBTL༻%BUB'SBNFΛ࡞੒ JNQPSUEBTLEBUBGSBNFBTEE EEGEEGSPN@QBOEBT EG OQBSUJUJPOT

     EFGBQQMZ@GVOD SPX  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ SFUVSOIPHF@EBUB IPHF@MJTUEGBQQMZ BQQMZ@GVOD BYJT NFUBܕΛࢦఆ  DPNQVUF TDIFEVMFSQSPDFTTFT  EBTLͷྫ  KPCMJCԽYͰϓϩηεͰॲཧ͠·͢  EGΛͭʹ෼ׂ GSPNKPCMJCJNQPSU1BSBMMFM EFMBZFE 4&1"3"5&@$06/5 TFQ@TUFQJOU MFO EG 4&1"3"5&@$06/5   EG@MJTU<> GPSTUFQJOSBOHF  MFO EG TFQ@TUFQ  EG@MJTUBQQFOE EG<TUFQTFQ@TUFQ>  KPCMJC༻ͷؔ਺ఆٛ EFGKPCMJC@GVOD EG  EEGEEGSPN@QBOEBT EG OQBSUJUJPOT  EFGBQQMZ@GVOD SPX  IPHF@EBUBԿΒ͔ͷॏ͍ॲཧ SFUVSOIPHF@EBUB IPHF@MJTUEGBQQMZ BQQMZ@GVOD BYJT NFUBܕΛࢦఆ DPNQVUF TDIFEVMFSbQSPDFTTFT  SFUVSOIPHF@MJTU KPCMJC༻ͷؔ਺ఆٛ GVHB@MJTU1BSBMMFM O@KPCT4&1"3"5&@$06/5 <EFMBZFE KPCMJC@GVOD EG@MJTU<TUFQ> GPSTUFQJO SBOHF  4&1"3"5&@$06/5 > +PCMJCͷྫ एׯख͚ؒͩͲEBTLͷॲཧ͸ ΄΅ྲྀ༻Ͱ͖Δ
  44. େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏  ͬŋТŋ ͬŲƄŖƃ +PCMJC ͬŋТŋ ͬŲƄŖƃ ͬŋТŋ ͬŲƄŖƃ 

                  ͬŋТŋ ͬŋТŋ ͬŋТŋ ͬŋТŋ ͬŋТŋ %BTL
  45. ݱࡏ ະདྷ աڈ       

            େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏  ͭࢠͷ৔߹
  46. େ͖ͳ୯Ґͷߴ଎Խ͸+PCMJCΛ࢖͏  EBTLͱ+PCMJCͲͬͪΛ࢖͏΂͖͔ ɾ%BUB'SBNF಺ͷߦ୯Ґͷॲཧ͸EBTL ɾ*0ͷେ͖ͳॲཧ΍Կ෼΋ֻ͔Δॲཧ͸+PCMJC ɾEBTLͷํ͕࣮૷ίετ͸͍҆ ɾएׯ࣮૷ʹ࣌ؒΛֻ͚ͯ΋͞ΒʹฒྻԽ͍ͨ͠ͱ͖͸+PCMJC ͍͍ͩͨ͜Μͳײ͡ ͋͘·Ͱݸਓతͳҙݟ

  47. σϞʢ͕࣌ؒ͋Ε͹ʣ Θ ͔ Β Μ 

  48. ·ͱΊ Θ ͔ Β Μ 

  49. ·ͱΊ  ूܭॲཧ͸BQQMZ Ͱ૊ΜͰ͓͘  Ξ΢τϓοτઌ͸෼ׂ͓ͯ͘͠  ߦ͝ͱͷॲཧͷฒྻԽ͸EBTLΛ࢖͏  େ͖ͳ୯ҐͷฒྻԽ͸KPCMJCΛ࢖͏

     ʙ  Λ͓ͯ͘͠ͱ  ͸௨ৗͷ޻਺ͷൣғ಺  ͸ʮͪΐͬͱॲཧ͕ॏͯ͘ฒྻԽதͰ͢ʔʯͱ্࢘ʹݴͬͯ औΓ૊Ί͹ྑ͍಺༰ʢ͍͍ͤͥʙ࣌ؒఔ౓Ͱ࣮૷Ͱ͖Δ ͷͰ͓͢͢Ί
  50. ©)VHLVOJOD CONFIDENTIAL   ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠(ʆŋωŋ´)ʎ !ZBTVCFJUXJ ZBTVIBSVTV[VLJ IUUQTIVHLVODPN ← ྑ͔ͬͨΒ͓༑ୡʹ

    ͳΓ·͠ΐ͏ʙ