Date: Wed, 21 Jul 2021 20:45:00 -0400
<div class="wp-block-jetpack-markdown"><h2>Summary</h2> <p>When you start working on a data project there are always a variety of unknown factors that you have to explore. One of those is the volume of total data that you will eventually need to handle, and the speed and scale at which it will need to be processed. If you optimize for scale too early then it adds a high barrier to entry due to the complexities of distributed systems, but if you invest in a lot of engineering up front then it can be challenging to refactor for scale. Modin is a project that aims to remove that decision by letting you seamlessly replace your existing Pandas code and scale across CPU cores or across a cluster of machines. In this episode Devin Petersohn explains why he started working on solving this problem, how Modin is architected to allow for a smooth escalation from small to large volumes of data and compute, and how you can start using it today to accelerate your Pandas workflows.</p> <h2>Announcements</h2> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.</li> <li>When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Devin Petersohn about Modin, a Pandas compatible dataframe library for datasets from 1MB to 1TB+</li> </ul> <h2>Interview</h2> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you describe what Modin is and the story behind it? <ul> <li>Why study dataframes?</li> </ul> </li> <li>How do dataframes compare to databases? <ul> <li>What can you do in a dataframe that you couldn’t in a database?</li> </ul> </li> <li>What are your overall goals for the Modin project?</li> <li>Who are the target users of Modin and how does that influence your prioritization of features?</li> <li>What are some of the API inconsistencies that you have had to abstract and work around between Pandas, Ray, and Dask to give users a seamless experience?</li> <li>What are some of the considerations in terms of capabilities or user experience that will influence whether to use Ray or Dask as the execution engine?</li> <li>Can you describe how Modin is implemented? <ul> <li>How has the constraint of replicating the Pandas API influenced your architectural choices?</li> <li>What are the most complex or challenging Pandas APIs to replicate in Modin?</li> </ul> </li> <li>In addition to the core Pandas API you have also added experimental features such as SQL support and a spreadsheet interface. How have those capabilities affected the range of potential use cases and end users?</li> <li>What are some of the complexities that come from acting as a middleware between the Pandas API and the Ray and Dask frameworks?</li> <li>What are some of the initial ideas or assumptions that you had about the design or utility of Modin that have been challenged as you worked through building and releasing it?</li> <li>What are the most interesting, innovative, or unexpected ways that you have seen Modin used?</li> <li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on Modin?</li> <li>When is Modin the wrong choice?</li> <li>What do you have planned for the future of Modin?</li> </ul> <h2>Keep In Touch</h2> <ul> <li><a href="https://github.com/devin-petersohn?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">devin-petersohn</a> on GitHub</li> <li><a href="https://www.linkedin.com/in/devinpetersohn/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> </ul> <h2>Picks</h2> <ul> <li>Tobias <ul> <li><a href="https://github.com/xxh/xxh?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">xxh</a></li> </ul> </li> <li>Devin <ul> <li><a href="https://github.com/lux-org/lux?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Lux</a> <ul> <li><a href="https://www.pythonpodcast.com/lux-data-exploration-episode-313/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> </ul> </li> </ul> <h2>Closing Announcements</h2> <ul> <li>Thank you for listening! Don’t forget to check out our other show, the <a href="https://feeds.fireside.fm/pythonpodcast/rss">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you’ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&utm_medium=rss">pythonpodcast.com/chat</a></li> </ul> <h2>Links</h2> <ul> <li><a href="https://modin.readthedocs.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Modin</a></li> <li><a href="https://www.berkeley.edu/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">UC Berkeley</a></li> <li><a href="https://rise.cs.berkeley.edu/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">RISELAB</a></li> <li><a href="http://xarray.pydata.org/en/stable/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">XArray</a></li> <li><a href="https://pandas.pydata.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Pandas</a> <ul> <li><a href="https://www.pythonpodcast.com/episode-98-pandas-with-jeff-reback/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://dask.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Dask</a> <ul> <li><a href="https://www.dataengineeringpodcast.com/episode-2-dask-with-matthew-rocklin/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Podcast Episode</a></li> </ul> </li> <li><a href="https://docs.ray.io/en/latest/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ray</a> <ul> <li><a href="https://www.pythonpodcast.com/ray-distributed-computing-episode-258/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://spark.apache.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Spark</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fmodin-parallel-dataframe-episode-324%2F&action_name=Unleash+The+Power+Of+Dataframes+At+Any+Scale+With+Modin+-+Episode+324&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />