{"id":1789,"date":"2025-08-06T17:53:22","date_gmt":"2025-08-06T20:53:22","guid":{"rendered":"https:\/\/alisonpezzott.com.br\/?p=1789"},"modified":"2026-01-20T17:54:48","modified_gmt":"2026-01-20T20:54:48","slug":"manipulando-delta-table-em-um-lakehouse-desconectado-do-notebook-usando-python-nao-pyspark-no-microsoft-fabric","status":"publish","type":"post","link":"https:\/\/alisonpezzott.com.br\/en\/manipulando-delta-table-em-um-lakehouse-desconectado-do-notebook-usando-python-nao-pyspark-no-microsoft-fabric\/","title":{"rendered":"Manipulando Delta table em um Lakehouse desconectado do notebook usando Python (n\u00e3o PySpark) no Microsoft Fabric"},"content":{"rendered":"<p>Neste artigo eu quero mostrar como n\u00f3s podemos manipular uma Delta table usando um notebook do Microsoft Fabric com Python, n\u00e3o PySpark.<\/p>\n\n\n\n<p>Todos notebooks no Microsoft Fabric iniciam por padr\u00e3o com PySpark, mas nem todos os projetos precisam rodar com PySpark. N\u00f3s podemos rodar com Python puro.  <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"208\" height=\"328\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image.png\" alt=\"\" class=\"wp-image-1790\" style=\"aspect-ratio:0.6341591233920915;width:208px;height:auto\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image.png 208w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-190x300.png 190w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-8x12.png 8w\" sizes=\"(max-width: 208px) 100vw, 208px\" \/><figcaption class=\"wp-element-caption\">Linguagens dispon\u00edveis nos notebooks no Microsoft Fabric<\/figcaption><\/figure>\n\n\n\n<p>Analisando a documenta\u00e7\u00e3o no Microsoft Learn, n\u00f3s podemos ver como escolher entre Python e PySpark baseand-se nas recomenda\u00e7\u00f5es de uso. Abaixo, eu trago a matriz de decis\u00e3o r\u00e1pida que resume qual abaordagem \u00e9 mais apropriada.  <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"744\" height=\"390\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-1.png\" alt=\"\" class=\"wp-image-1791\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-1.png 744w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-1-300x157.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-1-18x9.png 18w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption class=\"wp-element-caption\">Matriz de decis\u00e3o r\u00e1pida<\/figcaption><\/figure>\n\n\n\n<p>Como podemos ver, PySpark \u00e9 melhor para grandes conjuntos de dados e comples cen\u00e1rios onde voc\u00ea pode tirar vantagens da computa\u00e7\u00e3o distribu\u00edda. <\/p>\n\n\n\n<p>No entanto, em muitos casos de uso do mundo real, os conjuntos de dados s\u00e3o de pequeno a m\u00e9dio porte e podem ser processados de forma eficiente usando Python puro, o que ajuda a otimizar o consumo de Capacity Units e at\u00e9 mesmo evitar poss\u00edveis problemas ao trabalhar com conjuntos de dados muito pequenos.<\/p>\n\n\n\n<p>Atualmente, percebo que a maioria das discuss\u00f5es sobre notebooks no Microsoft Fabric se concentra fortemente no PySpark, enquanto o Python puro ainda \u00e9 pouco explorado nesse contexto.<\/p>\n\n\n\n<p>De fato, se voc\u00ea quiser usar Python puro para manipular tabelas Delta em um Lakehouse, ser\u00e1 necess\u00e1rio adotar padr\u00f5es de c\u00f3digo diferentes em compara\u00e7\u00e3o com a abordagem em PySpark.<\/p>\n\n\n\n<p>Pensando nisso, decidi compartilhar um <a href=\"https:\/\/github.com\/alisonpezzott\/microsoft-fabric-notebook-python-ex-001\/blob\/main\/Notebook.ipynb\">notebook de exemplo no meu GitHub<\/a> para ajudar voc\u00ea a come\u00e7ar e otimizar seus notebooks no Fabric utilizando Python puro.<\/p>\n\n\n\n<p>Na se\u00e7\u00e3o a seguir, vou apresentar as principais partes do c\u00f3digo, trazendo insights que voc\u00ea pode adaptar aos seus pr\u00f3prios processos.<\/p>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-d8c8212\" id=\"passos-para-reproducao\" data-block-id=\"d8c8212\"><h4 class=\"stk-block-heading__text\">Passos para reprodu\u00e7\u00e3o<\/h4><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Crie um novo workspace com uma capacidade Fabric (ou Trial);<\/li>\n\n\n\n<li>Crie um novo lakehouse chamado Lakehouse;<\/li>\n\n\n\n<li>Nesse workspace importe o notebook baixado do GitHub ou copie cada trecho do c\u00f3digo em cada c\u00e9lula do notebook.<br><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-f645242\" id=\"explicando-o-codigo\" data-block-id=\"f645242\"><h4 class=\"stk-block-heading__text\">Explicando o c\u00f3digo<\/h4><\/div>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-0678240\" id=\"importando-as-bibliotecas\" data-block-id=\"0678240\"><h5 class=\"stk-block-heading__text\">Importando as bibliotecas<\/h5><\/div>\n\n\n\n<p>A primeira c\u00e9lula apenas importa as bilbiotecas necess\u00e1rias para executar o notebook. <\/p>\n\n\n\n<p>Talvez voc\u00ea nunca dee ter escutado antes falar sobre a bilbioteca <code>deltalake<\/code>. Confira a documenta\u00e7\u00e3o para compreens\u00e3o de todas as fun\u00e7\u00f5es:  <a href=\"https:\/\/delta-io.github.io\/delta-rs\/\" data-type=\"link\" data-id=\"https:\/\/delta-io.github.io\/delta-rs\/\">Delta Lake Documentation<\/a><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import notebookutils\nimport pandas as pd\nimport pyarrow as pa\n\nfrom deltalake import write_deltalake, DeltaTable\nfrom sempy.fabric import get_notebook_workspace_id, list_workspaces<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> notebookutils<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> pandas <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> pyarrow <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> pa<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> deltalake <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> write_deltalake<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> DeltaTable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sempy<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">fabric <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> get_notebook_workspace_id<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> list_workspaces<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-f399f69\" id=\"obtendo-parametros-a-partir-do-workspace-atual-e-locais-especificos\" data-block-id=\"f399f69\"><h5 class=\"stk-block-heading__text\">Obtendo parametros a partir do workspace atual e locais espec\u00edficos<\/h5><\/div>\n\n\n\n<p>Esta c\u00e9lula representa minha preferida maneira de trabalhar com notebooks e lakehouses. Eu intencionalmente n\u00e3o conecto nenhum lakehouse ao notebook, pois esta abordagem simplifica muito os pipelines de CI\/CD. Ao inv\u00e9s disso, eu dinamicamente busco o nome e ID do workspace e construo o endere\u00e7o ABFSS dinamicamente. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>workspace_id = get_notebook_workspace_id()  \nworkspace_name = list_workspaces().query(\"Id == @workspace_id\")&#91;'Name'&#93;.iloc&#91;0&#93;\n\nlakehouse_name = 'Lakehouse'\nlakehouse_path = (f'abfss:\/\/{workspace_name}@onelake.dfs.fabric.microsoft.com\/'\n                  f'{lakehouse_name}.Lakehouse')\ntables_path = f'{lakehouse_path}\/Tables'\ntable_name = 'Transactions'\ntable_path = tables_path + '\/' + table_name\n\nprint(f'Workspace: {workspace_name} | ID: {workspace_id}')\nprint(f'Tables path: {tables_path}') \nprint(f'Table path for this example: {table_path}') <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">workspace_id <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">get_notebook_workspace_id<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">workspace_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">list_workspaces<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">query<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Id == @workspace_id<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Name<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #D8DEE9FF\">iloc<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lakehouse_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Lakehouse<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">lakehouse_path <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;abfss:\/\/<\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">workspace_name<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">@onelake.dfs.fabric.microsoft.com\/&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                  <\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">lakehouse_name<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">.Lakehouse&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">tables_path <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">lakehouse_path<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">\/Tables&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">table_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Transactions<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">table_path <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> tables_path <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">\/<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> table_name<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Workspace: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">workspace_name<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> | ID: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">workspace_id<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Tables path: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">tables_path<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Table path for this example: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda:<\/h6>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Plaintext<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Workspace: Playground | ID: 985b1e03-58a6-4bde-a4da-91df29399350 \n\nTables path: abfss:\/\/Playground@onelake.dfs.fabric.microsoft.com\/Lakehouse.Lakehouse\/Tables \n\nTable path for this example: abfss:\/\/Playground@onelake.dfs.fabric.microsoft.com\/Lakehouse.Lakehouse\/Tables\/Transactions <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #d8dee9ff\">Workspace: Playground | ID: 985b1e03-58a6-4bde-a4da-91df29399350 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">Tables path: abfss:\/\/Playground@onelake.dfs.fabric.microsoft.com\/Lakehouse.Lakehouse\/Tables <\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">Table path for this example: abfss:\/\/Playground@onelake.dfs.fabric.microsoft.com\/Lakehouse.Lakehouse\/Tables\/Transactions <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-7312869\" id=\"crie-um-data-frame-com-dados-de-exemplo-e-escreva-na-delta-table\" data-block-id=\"7312869\"><h5 class=\"stk-block-heading__text\">Crie um DataFrame com dados de exemplo e escreva na DeltaTable<\/h5><\/div>\n\n\n\n<p>Com alguns dados de exemplo eu crio um <code>pandas.DataFrame<\/code> e escrevo uma tabela Delta no lakehouse.<\/p>\n\n\n\n<p>Na mesma c\u00e9lula eu recupero os dados carregados e mostro na sa\u00edda. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Sample data\nrecords = &#91;\n    (1, '2025-08-01', 1234.56),\n    (2, '2025-08-02', 2345.67),\n    (3, '2025-08-03', 3456.78)\n&#93;\n\n# Create the pandas.DataFrame\ndf = pd.DataFrame.from_records(records, columns=&#91;'ID', 'Date', 'Amount'&#93;)\n\n# Force the column types\ndf&#91;'ID'&#93; = df&#91;'ID'&#93;.astype('int64')\ndf&#91;'Date'&#93; = pd.to_datetime(df&#91;'Date'&#93;).dt.date \ndf&#91;'Amount'&#93; = df&#91;'Amount'&#93;.astype('float64') \n\n# Write the DeltaTable with overwrite mode\nwrite_deltalake(table_path, df, mode='overwrite') \n\n# Read back to verify\ndt = DeltaTable(table_path)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\n\n# Converts col Date to datetime\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Sample data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">records <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-01<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1234.56<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-02<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2345.67<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-03<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3456.78<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create the pandas.DataFrame<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">DataFrame<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">from_records<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">records<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">columns<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Force the column types<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">int64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;).<\/span><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">date <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">float64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Write the DeltaTable with overwrite mode<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">write_deltalake<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">mode<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">overwrite<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Read back to verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Converts col Date to datetime<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-141c20b\" id=\"saida\" data-block-id=\"141c20b\"><h6 class=\"stk-block-heading__text\">Sa\u00edda<\/h6><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"287\" height=\"129\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-3.png\" alt=\"\" class=\"wp-image-1795\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-3.png 287w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-3-18x8.png 18w\" sizes=\"(max-width: 287px) 100vw, 287px\" \/><figcaption class=\"wp-element-caption\">Dados carregados<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Adicione linhas na tabela Delta<\/h5>\n\n\n\n<p>Nesta c\u00e9lula, eu demonstro como acrescentar novas linhas na tabela Delta. Simples, n\u00e3o?<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># New sample rows\nrecords = &#91;\n    (4, '2025-08-04', 4567.89),\n    (5, '2025-08-05', 5678.90),\n    (6, '2025-08-06', 6789.01)\n&#93;\n\n# Create the pandas.DataFrame\ndf = pd.DataFrame.from_records(records, columns=&#91;'ID', 'Date', 'Amount'&#93;)\n\n# Force the column types\ndf&#91;'ID'&#93; = df&#91;'ID'&#93;.astype('int64')\ndf&#91;'Date'&#93; = pd.to_datetime(df&#91;'Date'&#93;).dt.date \ndf&#91;'Amount'&#93; = df&#91;'Amount'&#93;.astype('float64') \n\n# Write the DeltaTable with append mode\nwrite_deltalake(table_path, df, mode=\"append\") \n\n# Read back to verify\ndt = DeltaTable(table_path)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\n\n# Converts col Date to datetime\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># New sample rows<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">records <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-04<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4567.89<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-05<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5678.90<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-06<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6789.01<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create the pandas.DataFrame<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">DataFrame<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">from_records<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">records<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">columns<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Force the column types<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">int64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;).<\/span><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">date <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">float64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Write the DeltaTable with append mode<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">write_deltalake<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">mode<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">append<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Read back to verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Converts col Date to datetime<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda<\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"295\" height=\"192\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-4.png\" alt=\"\" class=\"wp-image-1796\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-4.png 295w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-4-18x12.png 18w\" sizes=\"(max-width: 295px) 100vw, 295px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Apague linhas na Delta table<\/h5>\n\n\n\n<p>Neste exemplo, eu demonstro como deletar linhas de uma tabela Delta. <\/p>\n\n\n\n<p>Repare que a condi\u00e7\u00e3o de dele\u00e7\u00e3o usa o padr\u00e3o da cl\u00e1usula WHERE do SQL. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>dt = DeltaTable(table_path)\ndt.delete('ID IN (4, 5, 6)') \n\n# Other Examples\n# dt.delete('ID IS NULL')\n# dt.delete(\"Date BETWEEN '2025-08-07' AND '2025-08-31'\")\n\n# Read back to verify\ndt = DeltaTable(table_path)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\n\n# Converts col Date to datetime\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">delete<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID IN (4, 5, 6)<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Other Examples<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># dt.delete(&#39;ID IS NULL&#39;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># dt.delete(&quot;Date BETWEEN &#39;2025-08-07&#39; AND &#39;2025-08-31&#39;&quot;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Read back to verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Converts col Date to datetime<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda<\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"299\" height=\"128\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-5.png\" alt=\"\" class=\"wp-image-1797\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-5.png 299w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-5-18x8.png 18w\" sizes=\"(max-width: 299px) 100vw, 299px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Mesclando dados em uma tabela Delta  <\/h5>\n\n\n\n<p>Esse exemplo traz um caso um pouco mais compleso, mas muito comum &#8211; executar a opera\u00e7\u00e3o de MERGE usando o padr\u00e3o UPSERT, o qual \u00e9 extremamente \u00fatil para atualiza\u00e7\u00f5es incrementais.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>dt = DeltaTable(table_path)\ndt.delete('ID IN (4, 5, 6)') \n\n# Other Examples\n# dt.delete('ID IS NULL')\n# dt.delete(\"Date BETWEEN '2025-08-07' AND '2025-08-31'\")\n\n# Read back to verify\ndt = DeltaTable(table_path)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\n\n# Converts col Date to datetime\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) \nOutput:\n\nMaximize image\nEdit image\nDelete image\n\nAdd a caption (optional)\nMerging data with with DeltaTable\nThis example brings a more complex use case \u2014 performing a Merge operation using an Upsert pattern, which is extremely useful for implementing incremental data refreshes.\n\n# Sample data to perform a merge\nrecords = &#91;\n    (1, '2025-08-04', 9876.54),\n    (2, '2025-08-05', 8765.43),\n    (3, '2025-08-06', 7654.32),\n    (4, '2025-08-07', 6543.21)\n&#93;\n\n# Create the pandas.DataFrame\ndf = pd.DataFrame.from_records(records, columns=&#91;'ID', 'Date', 'Amount'&#93;)\n\n# Force the column types\ndf&#91;'ID'&#93; = df&#91;'ID'&#93;.astype('int64')\ndf&#91;'Date'&#93; = pd.to_datetime(df&#91;'Date'&#93;).dt.date \ndf&#91;'Amount'&#93; = df&#91;'Amount'&#93;.astype('float64') \n\n# Transform from pandas.DataFrame to pyarrow.Table\nsource_data = pa.Table.from_pandas(df) \n\n# Reading the target_data \ndt = DeltaTable(table_path)\ntarget_data = dt.to_pyarrow_dataset().to_table()\n\n# Execute the merge\n(\n    dt.merge(\n        source=source_data,\n        predicate=\"target.ID = source.ID\",\n        source_alias=\"source\",\n        target_alias=\"target\")\n    .when_matched_update(\n        updates={\n            \"Date\": \"source.Date\",\n            \"Amount\": \"source.Amount\"\n        })\n    .when_not_matched_insert(\n        updates={\n            \"ID\": \"source.ID\",\n            \"Date\": \"source.Date\",\n            \"Amount\": \"source.Amount\"\n        })\n    .execute()\n)\n\n# Read back to verify\ndt = DeltaTable(table_path)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\n\n# Converts col Date to datetime\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">delete<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID IN (4, 5, 6)<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Other Examples<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># dt.delete(&#39;ID IS NULL&#39;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># dt.delete(&quot;Date BETWEEN &#39;2025-08-07&#39; AND &#39;2025-08-31&#39;&quot;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Read back to verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Converts col Date to datetime<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Output<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Maximize image<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Edit image<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Delete image<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Add a <\/span><span style=\"color: #88C0D0\">caption<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">optional<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Merging data <\/span><span style=\"color: #81A1C1\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">with<\/span><span style=\"color: #D8DEE9FF\"> DeltaTable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">This example brings a more <\/span><span style=\"color: #88C0D0\">complex<\/span><span style=\"color: #D8DEE9FF\"> use case \u2014 performing a Merge operation using an Upsert pattern<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> which <\/span><span style=\"color: #81A1C1\">is<\/span><span style=\"color: #D8DEE9FF\"> extremely useful <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> implementing incremental data refreshes<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Sample data to perform a merge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">records = <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-04<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9876.54<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-05<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8765.43<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-06<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">7654.32<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">2025-08-07<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6543.21<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create the pandas.DataFrame<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df = pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">DataFrame<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">from_records<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">records<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">columns<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Force the column types<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> = df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">int64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> = pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;).<\/span><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">date <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> = df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">astype<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">float64<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Transform from pandas.DataFrame to pyarrow.Table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">source_data = pa<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">Table<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">from_pandas<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Reading the target_data <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt = <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">target_data = dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Execute the merge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">merge<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">source<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">source_data<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">predicate<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">target.ID = source.ID<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">source_alias<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">target_alias<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">target<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">when_matched_update<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">updates<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source.Date<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source.Amount<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">})<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">when_not_matched_insert<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">updates<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source.ID<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source.Date<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Amount<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">source.Amount<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">})<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">execute<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Read back to verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dt = <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded = dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Converts col Date to datetime<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> = pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda<\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"147\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-6.png\" alt=\"\" class=\"wp-image-1798\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-6.png 296w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-6-18x9.png 18w\" sizes=\"(max-width: 296px) 100vw, 296px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Hist\u00f3rico da tabela Delta<\/h5>\n\n\n\n<p>Um recurso poderoso do Delta Lake \u00e9 a capacidade de rastrear todo o hist\u00f3rico de opera\u00e7\u00f5es realizadas em uma tabela. Ao chamar o m\u00e9todo <code>history()<\/code> em um objeto <code>DeltaTable<\/code>, voc\u00ea pode acessar metadados sobre cada transa\u00e7\u00e3o \u2014 incluindo timestamps (data\/hora), tipos de opera\u00e7\u00e3o (por exemplo, write, merge, delete), o n\u00famero de linhas afetadas e a vers\u00e3o do engine utilizada.<\/p>\n\n\n\n<p>Essa funcionalidade \u00e9 especialmente \u00fatil para:<\/p>\n\n\n\n<p>\u2022 Auditar altera\u00e7\u00f5es nos dados<br>\u2022 Depurar opera\u00e7\u00f5es de merge\/upsert<br>\u2022 Entender o ciclo de vida da sua tabela<\/p>\n\n\n\n<p>Aqui est\u00e1 um exemplo r\u00e1pido:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>dt=DeltaTable(table_path)\nhistory = pd.DataFrame(dt.history())\ndisplay(history) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">history <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">DataFrame<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">history<\/span><span style=\"color: #ECEFF4\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">history<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda<\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"140\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-7.png\" alt=\"\" class=\"wp-image-1800\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-7.png 744w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-7-300x56.png 300w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-7-18x3.png 18w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption class=\"wp-element-caption\">Hist\u00f3rico de mudan\u00e7as da tabela Delta<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Visualizar uma vers\u00e3o espec\u00edfica de uma tabela Delta<\/h4>\n\n\n\n<p>O Delta Lake permite que voc\u00ea leia uma vers\u00e3o espec\u00edfica da tabela utilizando o par\u00e2metro <code>version<\/code>. Isso \u00e9 \u00fatil para <em>time travel<\/em>, depura\u00e7\u00e3o ou para reproduzir resultados a partir de um estado passado da tabela.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>dt = DeltaTable(table_path, version=0)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">version<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda (Vers\u00e3o 0)  <\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"297\" height=\"126\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-8.png\" alt=\"\" class=\"wp-image-1801\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-8.png 297w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-8-18x8.png 18w\" sizes=\"(max-width: 297px) 100vw, 297px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0\">Python<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>dt = DeltaTable(table_path, version=3)\ndf_loaded = dt.to_pyarrow_dataset().to_table().to_pandas()\ndf_loaded&#91;'Date'&#93; = pd.to_datetime(df_loaded&#91;'Date'&#93;)\n\ndisplay(df_loaded.sort_values('ID')) <\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">dt <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DeltaTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">table_path<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">version<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> dt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_pyarrow_dataset<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_table<\/span><span style=\"color: #ECEFF4\">().<\/span><span style=\"color: #88C0D0\">to_pandas<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to_datetime<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Date<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">display<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df_loaded<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sort_values<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">ID<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Sa\u00edda (Vers\u00e3o 3)<\/h6>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"149\" src=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-9.png\" alt=\"\" class=\"wp-image-1802\" srcset=\"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-9.png 296w, https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/image-9-18x9.png 18w\" sizes=\"(max-width: 296px) 100vw, 296px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Considera\u00e7\u00f5es finais<\/strong><\/h3>\n\n\n\n<p>Os exemplos compartilhados aqui s\u00e3o fun\u00e7\u00f5es b\u00e1sicas, com fins demonstrativos. Recomendo fortemente que voc\u00ea v\u00e1 al\u00e9m da leitura \u2014 a melhor forma de aprender \u00e9 colocando a m\u00e3o na massa e incorporando c\u00f3digo real aos seus pr\u00f3prios processos.<\/p>\n\n\n\n<p>Existem muitos outros recursos poderosos do Delta Lake que valem a pena explorar, como <code>VACUUM<\/code>, <code>Z-ORDER<\/code> e <code>OPTIMIZE<\/code>, que podem melhorar significativamente o desempenho e a efici\u00eancia de armazenamento em ambientes de produ\u00e7\u00e3o.<\/p>\n\n\n\n<p>Utilizar Python puro em notebooks do Microsoft Fabric pode ajudar a otimizar o consumo de Capacity Units e evitar sobrecarga desnecess\u00e1ria ou complica\u00e7\u00f5es relacionadas ao PySpark \u2014 especialmente em cen\u00e1rios de microprocessamento.<\/p>\n\n\n\n<p>Por isso, \u00e9 t\u00e3o importante avaliar cada projeto individualmente, considerando sua escala, complexidade e restri\u00e7\u00f5es de recursos antes de escolher a abordagem de implementa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Espero que este artigo ajude voc\u00ea a repensar como estruturar seus notebooks no Microsoft Fabric \u2014 equilibrando desempenho, simplicidade e manutenibilidade.<\/p>\n\n\n\n<p>Fique \u00e0 vontade para compartilhar sua opini\u00e3o nos coment\u00e1rios ou entrar em contato. Vamos continuar construindo solu\u00e7\u00f5es melhores \u2014 uma c\u00e9lula por vez. \ud83d\ude80<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Fontes:<\/h4>\n\n\n\n<p>Full notebook: <a href=\"https:\/\/github.com\/alisonpezzott\/microsoft-fabric-notebook-python-ex-001\/blob\/main\/Notebook.ipynb\">microsoft-fabric-notebook-python-ex-001\/Notebook.ipynb at main \u00b7 alisonpezzott\/microsoft-fabric-notebook-python-ex-001<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-engineering\/fabric-notebook-selection-guide\">Choosing Between Python and PySpark Notebooks in Microsoft Fabric<\/a><\/p>\n\n\n\n<p>Deltalake python lib docs: <a href=\"https:\/\/delta-io.github.io\/delta-rs\/\">Home &#8211; Delta Lake Documentation<\/a><\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Neste artigo eu quero mostrar como n\u00f3s podemos manipular uma Delta table usando um notebook do Microsoft Fabric com Python, n\u00e3o PySpark. Todos notebooks no Microsoft Fabric iniciam por padr\u00e3o com PySpark, mas nem todos os projetos precisam rodar com PySpark. N\u00f3s podemos rodar com Python puro. Analisando a documenta\u00e7\u00e3o no Microsoft Learn, n\u00f3s podemos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1804,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_silent-publish":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[50],"tags":[51,52,53],"class_list":["post-1789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-fabric","tag-deltatable","tag-notebook","tag-python"],"blocksy_meta":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/alisonpezzott.com.br\/wp-content\/uploads\/2026\/01\/Frame-23.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/comments?post=1789"}],"version-history":[{"count":4,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1789\/revisions"}],"predecessor-version":[{"id":1803,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/posts\/1789\/revisions\/1803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/media\/1804"}],"wp:attachment":[{"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/media?parent=1789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/categories?post=1789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alisonpezzott.com.br\/en\/wp-json\/wp\/v2\/tags?post=1789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}