Skip to content

Commit

Permalink
Making a new commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
leonardopangaio committed Jan 22, 2025
1 parent d1f09d5 commit 3294930
Show file tree
Hide file tree
Showing 45 changed files with 10,735 additions and 399 deletions.
88 changes: 88 additions & 0 deletions docs/blog/posts/luciana-sampaio/unpersistPySpark.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
date:
created: 2025-01-14
authors:
- luciana
categories:
- PySpark
- Data Science
- Tech
comments: true
slug: unpsersist-pyspark
---

# O que é unpersist() em PySpark?

O método `unpersist()` é eficaz para liberar recursos em processos de batch, onde você pode controlar quando o cache não é mais necessário. Em streaming, no entanto, o uso de `unpersist()` não é recomendado, pois os dados são processados continuamente e o checkpoint já cuida da consistência e do armazenamento de estado. A utilização do checkpoint garante que o processo de streaming seja resiliente e possa ser retomado a partir de um ponto de falha, tornando a liberação de memória mais controlada e menos disruptiva.

Bora para exemplo?

![alt text](../../../images/blog/luciana/unpersit1.png)

Carregado dados Spark

![alt text](../../../images/blog/luciana/unpersit2.png)

A função %time no IPython (ou Jupyter Notebook) é uma maneira prática de medir o tempo de execução de uma única linha de código. Ela retorna o tempo total necessário para a execução do comando, ajudando você a ter uma ideia do desempenho de diferentes trechos de código.

![alt text](../../../images/blog/luciana/unpersit3.png)

Vou conferir a volumetria do meu DataFrame para entender a quantidade de dados que ele possui. 📈

![alt text](../../../images/blog/luciana/unpersit4.png)

Vou verificar quantas partições meu DataFrame possui atualmente. 🧐📊

![alt text](../../../images/blog/luciana/unpersit5.png)

Vou dividir meu DataFrame em 10 partições para aproveitar melhor a magia da computação distribuída. 🚀✨

![alt text](../../../images/blog/luciana/unpersit6.png)

Veja só, agora temos 10 partições! Um verdadeiro milagre da computação distribuída em ação. 🚀

![alt text](../../../images/blog/luciana/unpersit7.png)

Ao visualizar os dados, percebemos que eles foram reparticionados. O Spark distribuiu a carga utilizando múltiplas tarefas para executar o processamento.

![alt text](../../../images/blog/luciana/unpersit8.png)

Foi realizada uma consulta com um filtro básico.

![alt text](../../../images/blog/luciana/unpersit9.png)

### Consumo da cpu em tempo é de 11.2 milisegundos.

- A ideia agora é eliminar o cache utilizando o método `unpersist()`.

![alt text](../../../images/blog/luciana/unpersit10.png)

- Nesse passo de limpar o cache, tivemos um pequeno aumento no consumo.

----

Agora…aplicado o método .. 8.82 milisegundos.

![alt text](../../../images/blog/luciana/unpersit11.png)

Com certeza, como PoC, é uma ótima maneira de validar o conceito com um volume menor de dados! Espero que tenha ajudado!

# Meus Contatos! 🌟

Quer bater um papo, trocar ideias, ou só dar aquela stalkeada básica? Não seja tímido! Aqui estão meus canais de comunicação preferidos:

- 🌐 [LinkedIn](https://www.linkedin.com/in/luciana-sampaio/)
**O lugar onde pareço super profissional e séria. 😉**

- 🐙 [GitHub](https://github.com/luasampaio)
**Aqui é o cantinho dos meus códigos! Dá uma espiada, mas cuidado com os bugs. 😂**

- 📸 [Instagram](https://www.instagram.com/luasampaio/)
**Spoiler: mais fotos e menos linhas de código! 📷✨**

- ✍️ [Medium](https://medium.com/@luciana.sampaio84)
**Onde compartilho insights, histórias e dicas sobre dados e tecnologia. Dá uma conferida!**

Vai lá, segue, curte, comenta ou manda mensagem. Prometo que não mordo (muito)! 😜

*_texto original publicado em [medium.com](https://medium.com/@luciana.sampaio84/o-que-%C3%A9-unpersist-em-pyspark-b1617acef35b)*
Binary file added docs/images/blog/luciana/ConsumoBirads.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/blog/luciana/unpersit9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions site/blog/aplicativos-pyspark-redimensionados/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4729,11 +4729,11 @@ <h2 id="meus-contatos">Meus Contatos! 🌟<a class="headerlink" href="#meus-cont
<span class="md-source-file__fact">
<span class="md-icon" title="Colaboradores">

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 5.5A3.5 3.5 0 0 1 15.5 9a3.5 3.5 0 0 1-3.5 3.5A3.5 3.5 0 0 1 8.5 9 3.5 3.5 0 0 1 12 5.5M5 8c.56 0 1.08.15 1.53.42-.15 1.43.27 2.85 1.13 3.96C7.16 13.34 6.16 14 5 14a3 3 0 0 1-3-3 3 3 0 0 1 3-3m14 0a3 3 0 0 1 3 3 3 3 0 0 1-3 3c-1.16 0-2.16-.66-2.66-1.62a5.54 5.54 0 0 0 1.13-3.96c.45-.27.97-.42 1.53-.42M5.5 18.25c0-2.07 2.91-3.75 6.5-3.75s6.5 1.68 6.5 3.75V20h-13zM0 20v-1.5c0-1.39 1.89-2.56 4.45-2.9-.59.68-.95 1.62-.95 2.65V20zm24 0h-3.5v-1.75c0-1.03-.36-1.97-.95-2.65 2.56.34 4.45 1.51 4.45 2.9z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 4a4 4 0 0 1 4 4 4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4m0 10c4.42 0 8 1.79 8 4v2H4v-2c0-2.21 3.58-4 8-4"/></svg>

</span>
<nav>

leonardopangaio
</nav>
</span>

Expand Down
112 changes: 112 additions & 0 deletions site/blog/archive/2025/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -513,6 +513,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#o-que-e-unpersist-em-pyspark" class="md-nav__link">
<span class="md-ellipsis">
O que é unpersist() em PySpark?
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#como-criei-meu-site" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -4479,6 +4488,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#o-que-e-unpersist-em-pyspark" class="md-nav__link">
<span class="md-ellipsis">
O que é unpersist() em PySpark?
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#como-criei-meu-site" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -4515,6 +4533,100 @@ <h1 id="2025">2025<a class="headerlink" href="#2025" title="Permanent link">&par
<article class="md-post md-post--excerpt">
<header class="md-post__header">

<nav class="md-post__authors md-typeset">

<span class="md-author">
<img src="https://github.com/luasampaio.png" alt="Luciana Sampaio">
</span>

</nav>

<div class="md-post__meta md-meta">
<ul class="md-meta__list">
<li class="md-meta__item">
<time datetime="2025-01-14 00:00:00+00:00">14 de janeiro de 2025</time></li>

<li class="md-meta__item">
em

<a href="../../category/pyspark/" class="md-meta__link">PySpark</a>,
<a href="../../category/data-science/" class="md-meta__link">Data Science</a>,
<a href="../../category/tech/" class="md-meta__link">Tech</a></li>



<li class="md-meta__item">

3 min de leitura

</li>

</ul>

</div>
</header>
<div class="md-post__content md-typeset">
<h2 id="o-que-e-unpersist-em-pyspark"><a class="toclink" href="../../unpsersist-pyspark/">O que é unpersist() em PySpark?</a></h2>
<p>O método <code>unpersist()</code> é eficaz para liberar recursos em processos de batch, onde você pode controlar quando o cache não é mais necessário. Em streaming, no entanto, o uso de <code>unpersist()</code> não é recomendado, pois os dados são processados continuamente e o checkpoint já cuida da consistência e do armazenamento de estado. A utilização do checkpoint garante que o processo de streaming seja resiliente e possa ser retomado a partir de um ponto de falha, tornando a liberação de memória mais controlada e menos disruptiva.</p>
<p>Bora para exemplo?</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit1.png" /></p>
<p>Carregado dados Spark</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit2.png" /></p>
<p>A função %time no IPython (ou Jupyter Notebook) é uma maneira prática de medir o tempo de execução de uma única linha de código. Ela retorna o tempo total necessário para a execução do comando, ajudando você a ter uma ideia do desempenho de diferentes trechos de código.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit3.png" /></p>
<p>Vou conferir a volumetria do meu DataFrame para entender a quantidade de dados que ele possui. 📈</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit4.png" /></p>
<p>Vou verificar quantas partições meu DataFrame possui atualmente. 🧐📊</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit5.png" /></p>
<p>Vou dividir meu DataFrame em 10 partições para aproveitar melhor a magia da computação distribuída. 🚀✨</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit6.png" /></p>
<p>Veja só, agora temos 10 partições! Um verdadeiro milagre da computação distribuída em ação. 🚀</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit7.png" /></p>
<p>Ao visualizar os dados, percebemos que eles foram reparticionados. O Spark distribuiu a carga utilizando múltiplas tarefas para executar o processamento.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit8.png" /></p>
<p>Foi realizada uma consulta com um filtro básico.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit9.png" /></p>
<h4 id="consumo-da-cpu-em-tempo-e-de-112-milisegundos"><a class="toclink" href="../../unpsersist-pyspark/#consumo-da-cpu-em-tempo-e-de-112-milisegundos">Consumo da cpu em tempo é de 11.2 milisegundos.</a></h4>
<ul>
<li>A ideia agora é eliminar o cache utilizando o método <code>unpersist()</code>.</li>
</ul>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit10.png" /></p>
<ul>
<li>Nesse passo de limpar o cache, tivemos um pequeno aumento no consumo.</li>
</ul>
<hr />
<p>Agora…aplicado o método .. 8.82 milisegundos.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit11.png" /></p>
<p>Com certeza, como PoC, é uma ótima maneira de validar o conceito com um volume menor de dados! Espero que tenha ajudado!</p>
<h2 id="meus-contatos"><a class="toclink" href="../../unpsersist-pyspark/#meus-contatos">Meus Contatos! 🌟</a></h2>
<p>Quer bater um papo, trocar ideias, ou só dar aquela stalkeada básica? Não seja tímido! Aqui estão meus canais de comunicação preferidos:</p>
<ul>
<li>
<p>🌐 <a href="https://www.linkedin.com/in/luciana-sampaio/">LinkedIn</a><br />
<strong>O lugar onde pareço super profissional e séria. 😉</strong></p>
</li>
<li>
<p>🐙 <a href="https://github.com/luasampaio">GitHub</a><br />
<strong>Aqui é o cantinho dos meus códigos! Dá uma espiada, mas cuidado com os bugs. 😂</strong></p>
</li>
<li>
<p>📸 <a href="https://www.instagram.com/luasampaio/">Instagram</a><br />
<strong>Spoiler: mais fotos e menos linhas de código! 📷✨</strong></p>
</li>
<li>
<p>✍️ <a href="https://medium.com/@luciana.sampaio84">Medium</a><br />
<strong>Onde compartilho insights, histórias e dicas sobre dados e tecnologia. Dá uma conferida!</strong></p>
</li>
</ul>
<p>Vai lá, segue, curte, comenta ou manda mensagem. Prometo que não mordo (muito)! 😜</p>
<p><em>_texto original publicado em <a href="https://medium.com/@luciana.sampaio84/o-que-%C3%A9-unpersist-em-pyspark-b1617acef35b">medium.com</a></em></p>

</div>
</article>

<article class="md-post md-post--excerpt">
<header class="md-post__header">

<nav class="md-post__authors md-typeset">

<span class="md-author">
Expand Down
112 changes: 112 additions & 0 deletions site/blog/category/data-science/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#o-que-e-unpersist-em-pyspark" class="md-nav__link">
<span class="md-ellipsis">
O que é unpersist() em PySpark?
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#o-que-e-pysparksqlcontext" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -4497,6 +4506,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#o-que-e-unpersist-em-pyspark" class="md-nav__link">
<span class="md-ellipsis">
O que é unpersist() em PySpark?
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#o-que-e-pysparksqlcontext" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -4559,6 +4577,100 @@ <h1 id="data-science">Data Science<a class="headerlink" href="#data-science" tit

</nav>

<div class="md-post__meta md-meta">
<ul class="md-meta__list">
<li class="md-meta__item">
<time datetime="2025-01-14 00:00:00+00:00">14 de janeiro de 2025</time></li>

<li class="md-meta__item">
em

<a href="../pyspark/" class="md-meta__link">PySpark</a>,
<a href="./" class="md-meta__link">Data Science</a>,
<a href="../tech/" class="md-meta__link">Tech</a></li>



<li class="md-meta__item">

3 min de leitura

</li>

</ul>

</div>
</header>
<div class="md-post__content md-typeset">
<h2 id="o-que-e-unpersist-em-pyspark"><a class="toclink" href="../../unpsersist-pyspark/">O que é unpersist() em PySpark?</a></h2>
<p>O método <code>unpersist()</code> é eficaz para liberar recursos em processos de batch, onde você pode controlar quando o cache não é mais necessário. Em streaming, no entanto, o uso de <code>unpersist()</code> não é recomendado, pois os dados são processados continuamente e o checkpoint já cuida da consistência e do armazenamento de estado. A utilização do checkpoint garante que o processo de streaming seja resiliente e possa ser retomado a partir de um ponto de falha, tornando a liberação de memória mais controlada e menos disruptiva.</p>
<p>Bora para exemplo?</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit1.png" /></p>
<p>Carregado dados Spark</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit2.png" /></p>
<p>A função %time no IPython (ou Jupyter Notebook) é uma maneira prática de medir o tempo de execução de uma única linha de código. Ela retorna o tempo total necessário para a execução do comando, ajudando você a ter uma ideia do desempenho de diferentes trechos de código.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit3.png" /></p>
<p>Vou conferir a volumetria do meu DataFrame para entender a quantidade de dados que ele possui. 📈</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit4.png" /></p>
<p>Vou verificar quantas partições meu DataFrame possui atualmente. 🧐📊</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit5.png" /></p>
<p>Vou dividir meu DataFrame em 10 partições para aproveitar melhor a magia da computação distribuída. 🚀✨</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit6.png" /></p>
<p>Veja só, agora temos 10 partições! Um verdadeiro milagre da computação distribuída em ação. 🚀</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit7.png" /></p>
<p>Ao visualizar os dados, percebemos que eles foram reparticionados. O Spark distribuiu a carga utilizando múltiplas tarefas para executar o processamento.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit8.png" /></p>
<p>Foi realizada uma consulta com um filtro básico.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit9.png" /></p>
<h4 id="consumo-da-cpu-em-tempo-e-de-112-milisegundos"><a class="toclink" href="../../unpsersist-pyspark/#consumo-da-cpu-em-tempo-e-de-112-milisegundos">Consumo da cpu em tempo é de 11.2 milisegundos.</a></h4>
<ul>
<li>A ideia agora é eliminar o cache utilizando o método <code>unpersist()</code>.</li>
</ul>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit10.png" /></p>
<ul>
<li>Nesse passo de limpar o cache, tivemos um pequeno aumento no consumo.</li>
</ul>
<hr />
<p>Agora…aplicado o método .. 8.82 milisegundos.</p>
<p><img alt="alt text" src="../../../images/blog/luciana/unpersit11.png" /></p>
<p>Com certeza, como PoC, é uma ótima maneira de validar o conceito com um volume menor de dados! Espero que tenha ajudado!</p>
<h2 id="meus-contatos"><a class="toclink" href="../../unpsersist-pyspark/#meus-contatos">Meus Contatos! 🌟</a></h2>
<p>Quer bater um papo, trocar ideias, ou só dar aquela stalkeada básica? Não seja tímido! Aqui estão meus canais de comunicação preferidos:</p>
<ul>
<li>
<p>🌐 <a href="https://www.linkedin.com/in/luciana-sampaio/">LinkedIn</a><br />
<strong>O lugar onde pareço super profissional e séria. 😉</strong></p>
</li>
<li>
<p>🐙 <a href="https://github.com/luasampaio">GitHub</a><br />
<strong>Aqui é o cantinho dos meus códigos! Dá uma espiada, mas cuidado com os bugs. 😂</strong></p>
</li>
<li>
<p>📸 <a href="https://www.instagram.com/luasampaio/">Instagram</a><br />
<strong>Spoiler: mais fotos e menos linhas de código! 📷✨</strong></p>
</li>
<li>
<p>✍️ <a href="https://medium.com/@luciana.sampaio84">Medium</a><br />
<strong>Onde compartilho insights, histórias e dicas sobre dados e tecnologia. Dá uma conferida!</strong></p>
</li>
</ul>
<p>Vai lá, segue, curte, comenta ou manda mensagem. Prometo que não mordo (muito)! 😜</p>
<p><em>_texto original publicado em <a href="https://medium.com/@luciana.sampaio84/o-que-%C3%A9-unpersist-em-pyspark-b1617acef35b">medium.com</a></em></p>

</div>
</article>

<article class="md-post md-post--excerpt">
<header class="md-post__header">

<nav class="md-post__authors md-typeset">

<span class="md-author">
<img src="https://github.com/luasampaio.png" alt="Luciana Sampaio">
</span>

</nav>

<div class="md-post__meta md-meta">
<ul class="md-meta__list">
<li class="md-meta__item">
Expand Down
Loading

0 comments on commit 3294930

Please sign in to comment.