<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: POC on spark 4.x in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139734#M51285</link>
    <description>&lt;P&gt;Hey Louis,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Good Day , I have found all the above info on ChatGPT&amp;nbsp; long time ago , but using any of the set up takes a lot of time and I needed something with can be quick and developer friendly.&lt;/P&gt;&lt;P&gt;Last Friday I came across a post from &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/60098"&gt;@K_Anudeep&lt;/a&gt;&amp;nbsp;on Setting up a complete env locally in few minutes on Docker and it was quite good.But i am facing zome connection issues when extending the containers&lt;/P&gt;</description>
    <pubDate>Thu, 20 Nov 2025 01:04:02 GMT</pubDate>
    <dc:creator>RevanthV</dc:creator>
    <dc:date>2025-11-20T01:04:02Z</dc:date>
    <item>
      <title>POC on spark 4.x</title>
      <link>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139700#M51276</link>
      <description>&lt;P&gt;I need to do some POC with spark 3.5.7 and 4.x and need some local setup with some sample Kafka source.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The POC would read data from Kafka via streaming job and write to delta table and I would like to do this on spark-4.x ..Do you know of any quick place where i can do this.? I have found a way 2 days ago via a community post..but I still get some connectivity errors.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 16:50:46 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139700#M51276</guid>
      <dc:creator>RevanthV</dc:creator>
      <dc:date>2025-11-19T16:50:46Z</dc:date>
    </item>
    <item>
      <title>Re: POC on spark 4.x</title>
      <link>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139714#M51280</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/184430"&gt;@RevanthV&lt;/a&gt;&amp;nbsp;, I did some digging and here are some helpful tips.&lt;/P&gt;
&lt;P class="qt3gz91 paragraph"&gt;Got it — here are fast, reproducible ways to stand up a local Kafka source and run a Spark Structured Streaming job that writes to a Delta table, plus the common fixes for the connectivity errors you’re likely seeing.&lt;/P&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Quick setup options&lt;/H3&gt;
&lt;UL class="qt3gz97 qt3gz92"&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Use a simple local Kafka via Docker Compose (KRaft mode, no ZooKeeper) and point Spark to localhost:9092. This is usually the quickest way to get a working Kafka bootstrap server for development.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;If you want to skip local networking headaches, spin up a Databricks workspace and install the dbdemos “Spark Streaming — Advanced” demo; it includes Kafka ingestion and Delta writes with one command: &lt;CODE class="qt3gz9f"&gt;%pip install dbdemos&lt;/CODE&gt; then &lt;CODE class="qt3gz9f"&gt;dbdemos.install('streaming-sessionization')&lt;/CODE&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;For production-like behavior or more guardrails, you can ingest Kafka directly with Databricks Delta Live Tables (DLT) and Structured Streaming; it’s the same Kafka reader and Delta sink you’d use locally, just with managed orchestration and built-in reliability features.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Minimal local Docker Compose for Kafka&lt;/H3&gt;
&lt;P class="qt3gz91 paragraph"&gt;Save as docker-compose.yml and run &lt;CODE class="qt3gz9f"&gt;docker compose up -d&lt;/CODE&gt;:&lt;/P&gt;
&lt;DIV class="go8b9g1 _7pq7t6cl" data-ui-element="code-block-container"&gt;
&lt;PRE&gt;&lt;CODE class="markdown-code-yaml qt3gz9e hljs language-yaml _1ymogdh2"&gt;&lt;SPAN class="hljs-attr"&gt;version:&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"3.8"&lt;/SPAN&gt;
&lt;SPAN class="hljs-attr"&gt;services:&lt;/SPAN&gt;
  &lt;SPAN class="hljs-attr"&gt;kafka:&lt;/SPAN&gt;
    &lt;SPAN class="hljs-attr"&gt;image:&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;bitnami/kafka:latest&lt;/SPAN&gt;
    &lt;SPAN class="hljs-attr"&gt;container_name:&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;local-kafka&lt;/SPAN&gt;
    &lt;SPAN class="hljs-attr"&gt;environment:&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;KAFKA_CFG_NODE_ID=0&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;KAFKA_CFG_PROCESS_ROLES=broker,controller&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@localhost:9094&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9094&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;ALLOW_PLAINTEXT_LISTENER=yes&lt;/SPAN&gt;
    &lt;SPAN class="hljs-attr"&gt;ports:&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"9092:9092"&lt;/SPAN&gt;
      &lt;SPAN class="hljs-bullet"&gt;-&lt;/SPAN&gt; &lt;SPAN class="hljs-string"&gt;"9094:9094"&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="go8b9g3 _7pq7t62y _7pq7t6cm _7pq7t6ay _7pq7t6bo"&gt;
&lt;DIV class="_17yk06p0"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="qt3gz91 paragraph"&gt;Then create a test topic and produce a couple events (use Confluent CLI, kcat, or the Kafka console tools). If &lt;CODE class="qt3gz9f"&gt;kcat -b localhost:9092 -L&lt;/CODE&gt; lists your broker and topic, your bootstrap servers are reachable.&lt;/P&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Spark 4.x streaming read from Kafka and write to Delta&lt;/H3&gt;
&lt;P class="qt3gz91 paragraph"&gt;The code is the same across Spark 3.5.x and 4.x; the key differences are the connector JAR versions. Reading uses &lt;CODE class="qt3gz9f"&gt;format("kafka")&lt;/CODE&gt; with &lt;CODE class="qt3gz9f"&gt;kafka.bootstrap.servers&lt;/CODE&gt;, &lt;CODE class="qt3gz9f"&gt;subscribe&lt;/CODE&gt;, and &lt;CODE class="qt3gz9f"&gt;startingOffsets&lt;/CODE&gt;; writing uses &lt;CODE class="qt3gz9f"&gt;format("delta")&lt;/CODE&gt; plus a &lt;CODE class="qt3gz9f"&gt;checkpointLocation&lt;/CODE&gt; to ensure reliable progress tracking.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="go8b9g1 _7pq7t6cl" data-ui-element="code-block-container"&gt;
&lt;PRE&gt;&lt;CODE class="markdown-code-python qt3gz9e hljs language-python _1ymogdh2"&gt;&lt;SPAN class="hljs-keyword"&gt;from&lt;/SPAN&gt; pyspark.sql &lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; SparkSession
&lt;SPAN class="hljs-keyword"&gt;from&lt;/SPAN&gt; pyspark.sql.functions &lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; col, from_json
&lt;SPAN class="hljs-keyword"&gt;from&lt;/SPAN&gt; pyspark.sql.types &lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; StructType, StructField, StringType, IntegerType

spark = (SparkSession.builder
         .appName(&lt;SPAN class="hljs-string"&gt;"kafka-to-delta"&lt;/SPAN&gt;)
         .getOrCreate())

&lt;SPAN class="hljs-comment"&gt;# 1) Stream from Kafka&lt;/SPAN&gt;
df_raw = (spark.readStream
          .&lt;SPAN class="hljs-built_in"&gt;format&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"kafka"&lt;/SPAN&gt;)
          .option(&lt;SPAN class="hljs-string"&gt;"kafka.bootstrap.servers"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"localhost:9092"&lt;/SPAN&gt;)
          .option(&lt;SPAN class="hljs-string"&gt;"subscribe"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"events"&lt;/SPAN&gt;)
          .option(&lt;SPAN class="hljs-string"&gt;"startingOffsets"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"latest"&lt;/SPAN&gt;)
          .load())

&lt;SPAN class="hljs-comment"&gt;# 2) Parse the Kafka value payload (adjust schema to your data)&lt;/SPAN&gt;
event_schema = StructType([
    StructField(&lt;SPAN class="hljs-string"&gt;"id"&lt;/SPAN&gt;, StringType(), &lt;SPAN class="hljs-literal"&gt;True&lt;/SPAN&gt;),
    StructField(&lt;SPAN class="hljs-string"&gt;"type"&lt;/SPAN&gt;, StringType(), &lt;SPAN class="hljs-literal"&gt;True&lt;/SPAN&gt;),
    StructField(&lt;SPAN class="hljs-string"&gt;"count"&lt;/SPAN&gt;, IntegerType(), &lt;SPAN class="hljs-literal"&gt;True&lt;/SPAN&gt;)
])

df_parsed = (df_raw
             .selectExpr(&lt;SPAN class="hljs-string"&gt;"CAST(value AS STRING) AS json"&lt;/SPAN&gt;)
             .select(from_json(col(&lt;SPAN class="hljs-string"&gt;"json"&lt;/SPAN&gt;), event_schema).alias(&lt;SPAN class="hljs-string"&gt;"event"&lt;/SPAN&gt;))
             .select(&lt;SPAN class="hljs-string"&gt;"event.*"&lt;/SPAN&gt;))

&lt;SPAN class="hljs-comment"&gt;# 3) Write to Delta with checkpointing&lt;/SPAN&gt;
query = (df_parsed.writeStream
         .&lt;SPAN class="hljs-built_in"&gt;format&lt;/SPAN&gt;(&lt;SPAN class="hljs-string"&gt;"delta"&lt;/SPAN&gt;)
         .option(&lt;SPAN class="hljs-string"&gt;"checkpointLocation"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"/tmp/chk/kafka_events"&lt;/SPAN&gt;)
         .outputMode(&lt;SPAN class="hljs-string"&gt;"append"&lt;/SPAN&gt;)
         .start(&lt;SPAN class="hljs-string"&gt;"/tmp/delta/kafka_events"&lt;/SPAN&gt;))

query.awaitTermination()&lt;/CODE&gt;&lt;/PRE&gt;
&lt;DIV class="go8b9g3 _7pq7t62y _7pq7t6cm _7pq7t6ay _7pq7t6bo"&gt;
&lt;DIV class="go8b9g5 _7pq7t6cj"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Dependencies for Spark 3.5.7 vs 4.x&lt;/H3&gt;
&lt;UL class="qt3gz97 qt3gz92"&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Use the Kafka connector that matches your Spark major/minor: &lt;CODE class="qt3gz9f"&gt;org.apache.spark:spark-sql-kafka-0-10_2.12:&amp;lt;your-spark-version&amp;gt;&lt;/CODE&gt;. Add the matching &lt;CODE class="qt3gz9f"&gt;org.apache.kafka:kafka-clients:&amp;lt;broker-compatible-version&amp;gt;&lt;/CODE&gt;. This ensures &lt;CODE class="qt3gz9f"&gt;KafkaSourceProvider&lt;/CODE&gt; loads correctly at runtime.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Add Delta Lake libraries compatible with your Spark/Scala build and enable the Delta SQL extension/catalog (if not already bundled with your distribution). Delta Lake integrates with Structured Streaming for both sources and sinks and requires checkpointing when used as a sink.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Common connectivity errors and quick fixes&lt;/H3&gt;
&lt;UL class="qt3gz97 qt3gz92"&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;“No data and no error” after starting the stream often means your &lt;CODE class="qt3gz9f"&gt;kafka.bootstrap.servers&lt;/CODE&gt; isn’t resolvable or reachable; the Kafka client will retry indefinitely without throwing. Validate with &lt;CODE class="qt3gz9f"&gt;kcat -b localhost:9092 -L&lt;/CODE&gt; and fix advertised listeners or hostnames first.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Wrong listener/advertised listener: your Docker broker must advertise a hostname/port accessible from the host (e.g., &lt;CODE class="qt3gz9f"&gt;PLAINTEXT://localhost:9092&lt;/CODE&gt;). If it advertises an internal container name or IP, the Spark driver can’t connect. Update &lt;CODE class="qt3gz9f"&gt;KAFKA_CFG_ADVERTISED_LISTENERS&lt;/CODE&gt; and restart.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;SASL/SSL mismatch: if your broker requires TLS or SASL, set the corresponding Spark options (for example, &lt;CODE class="qt3gz9f"&gt;kafka.security.protocol&lt;/CODE&gt;, &lt;CODE class="qt3gz9f"&gt;kafka.ssl.*&lt;/CODE&gt;, &lt;CODE class="qt3gz9f"&gt;kafka.sasl.*&lt;/CODE&gt;). Start plaintext first to validate networking, then add security configs incrementally.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Missing connector JARs: “NoClassDefFoundError: …KafkaSourceProvider” means the &lt;CODE class="qt3gz9f"&gt;spark-sql-kafka-0-10&lt;/CODE&gt; package is absent or wrong-version. Use &lt;CODE class="qt3gz9f"&gt;--packages org.apache.spark:spark-sql-kafka-0-10_2.12:&amp;lt;spark-version&amp;gt;&lt;/CODE&gt; (or add to your build) and ensure Scala version alignment.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Throughput/backlog issues: control ingestion using &lt;CODE class="qt3gz9f"&gt;maxOffsetsPerTrigger&lt;/CODE&gt; and parallelism via &lt;CODE class="qt3gz9f"&gt;minPartitions&lt;/CODE&gt;. Monitor backlog and tune these settings to keep up with incoming volume.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;A “quick place” to do this on Spark 4.x&lt;/H3&gt;
&lt;UL class="qt3gz97 qt3gz92"&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Local: Use the Docker Compose above, then &lt;CODE class="qt3gz9f"&gt;spark-submit&lt;/CODE&gt; or &lt;CODE class="qt3gz9f"&gt;spark-shell&lt;/CODE&gt; with matching Kafka and Delta packages. It’s the fastest path for a local POC.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Managed (fastest to verify end‑to‑end): Launch a small Databricks cluster, use the Kafka reader options shown above, and write to a Delta table. The same &lt;CODE class="qt3gz9f"&gt;format("kafka")&lt;/CODE&gt;/&lt;CODE class="qt3gz9f"&gt;format("delta")&lt;/CODE&gt; APIs apply, and the docs walk through the exact options and behaviors you’ll see in the stream.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 class="_7uu25p0 qt3gz9c _7pq7t612 heading3 _7uu25p1"&gt;Troubleshooting checklist&lt;/H3&gt;
&lt;UL class="qt3gz97 qt3gz92"&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Verify broker reachability: &lt;CODE class="qt3gz9f"&gt;kcat -b localhost:9092 -L&lt;/CODE&gt; should list your topic/partitions. If it fails, fix Docker networking/advertised listeners before testing Spark.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Check topic subscription settings: use &lt;CODE class="qt3gz9f"&gt;subscribe="events"&lt;/CODE&gt; and confirm it’s the right topic name; set &lt;CODE class="qt3gz9f"&gt;startingOffsets="latest"&lt;/CODE&gt; to avoid scanning old history during POC.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="qt3gz9a"&gt;
&lt;P class="qt3gz91 paragraph"&gt;Always set a &lt;CODE class="qt3gz9f"&gt;checkpointLocation&lt;/CODE&gt; on your Delta sink to allow reliable restart and exactly-once semantics in the pipeline.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Hope this helps, Louis.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 18:59:51 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139714#M51280</guid>
      <dc:creator>Louis_Frolio</dc:creator>
      <dc:date>2025-11-19T18:59:51Z</dc:date>
    </item>
    <item>
      <title>Re: POC on spark 4.x</title>
      <link>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139734#M51285</link>
      <description>&lt;P&gt;Hey Louis,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Good Day , I have found all the above info on ChatGPT&amp;nbsp; long time ago , but using any of the set up takes a lot of time and I needed something with can be quick and developer friendly.&lt;/P&gt;&lt;P&gt;Last Friday I came across a post from &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/60098"&gt;@K_Anudeep&lt;/a&gt;&amp;nbsp;on Setting up a complete env locally in few minutes on Docker and it was quite good.But i am facing zome connection issues when extending the containers&lt;/P&gt;</description>
      <pubDate>Thu, 20 Nov 2025 01:04:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139734#M51285</guid>
      <dc:creator>RevanthV</dc:creator>
      <dc:date>2025-11-20T01:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: POC on spark 4.x</title>
      <link>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139736#M51287</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/184430"&gt;@RevanthV&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Thanks for tagging me here.Firstly, I am happy that you have tried out teh setup using the project posted in the community.&lt;LI-MESSAGE title="⭐ Setup Spark with Hadoop Anywhere : A DBR aligned local Spark+HDFS+Hive stack on Docker⭐" uid="138989" url="https://community.databricks.com/t5/announcements/setup-spark-with-hadoop-anywhere-a-dbr-aligned-local-spark-hdfs/m-p/138989#U138989" discussion_style_icon_css="lia-mention-container-editor-message lia-img-icon-forum-thread lia-fa-icon lia-fa-forum lia-fa-thread lia-fa"&gt;&lt;/LI-MESSAGE&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please let me know or post your Docker-Compose file after you have made the modification?&lt;/P&gt;</description>
      <pubDate>Thu, 20 Nov 2025 01:23:40 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/poc-on-spark-4-x/m-p/139736#M51287</guid>
      <dc:creator>K_Anudeep</dc:creator>
      <dc:date>2025-11-20T01:23:40Z</dc:date>
    </item>
  </channel>
</rss>

