<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Spark 101 on Ziva</title>
		<link>https://zivali.github.io/series/spark-101/</link>
		<description>Recent content in Spark 101 on Ziva</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
			<copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright>
		
		
			<lastBuildDate>Sat, 15 Aug 2026 20:57:00 +0000</lastBuildDate>
		
			<atom:link href="https://zivali.github.io/series/spark-101/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Spark Join Strategies: Five Common Joins with a Runnable Local Lab</title>
				<link>https://zivali.github.io/posts/spark-join-strategies-five-common-joins-with-a-runnable-local-lab/</link>
				<pubDate>Sat, 15 Aug 2026 00:52:00 +0000</pubDate>
				<guid>https://zivali.github.io/posts/spark-join-strategies-five-common-joins-with-a-runnable-local-lab/</guid>
				<description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdn.jsdelivr.net/npm/katex@0.16.2/dist/katex.min.css&#34; integrity=&#34;sha384-bYdxxUwYipFNohQlHt0bjN/LCpueqWz13HufFEV1SUatKs1cm4L6fFgCi1jT643X&#34; crossorigin=&#34;anonymous&#34;&gt;&#xA;&lt;p&gt;&lt;code&gt;DataFrame.join()&lt;/code&gt; describes a logical relationship. A &lt;strong&gt;physical join&#xA;strategy&lt;/strong&gt; describes how Spark makes the two sides meet: by copying a small&#xA;relation to every executor, repartitioning both sides, sorting them, or&#xA;comparing every possible pair.&lt;/p&gt;&#xA;&lt;p&gt;This guide explains five common strategies, shows their executor-level data&#xA;movement, and pairs each one with a minimal PySpark shape and Spark UI evidence.&#xA;The companion Docker standalone lab is in: &lt;a href=&#34;https://github.com/zivali/spark-join-strategies-lab&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/zivali/spark-join-strategies-lab&lt;/a&gt;, which generates deterministic 10M and 100M-row datasets and saves the observed plan and runtime data.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
