<?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: End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks in Machine Learning</title>
    <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/166306#M4675</link>
    <description>&lt;P&gt;Thanks for the overview. Since you are using auto loader for files ingestion,Can we say is this pipeline brings real time data or near real time data feed to the ML model?&lt;/P&gt;</description>
    <pubDate>Mon, 24 Aug 2026 11:56:56 GMT</pubDate>
    <dc:creator>krishgarikipati</dc:creator>
    <dc:date>2026-08-24T11:56:56Z</dc:date>
    <item>
      <title>End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks</title>
      <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/165633#M4662</link>
      <description>&lt;P class=""&gt;&lt;SPAN&gt;I have been working on a project to understand Databricks end to end, rather than just loading some data and training a model.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I picked &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;GDELT news data&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt; and the use case is to identify supply chain disruption related news and eventually predict which events could escalate.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I started by using &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;ADF to pull GDELT GKG files&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt; and store the original ZIP files in ADLS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Initially I did this with a single hardcoded file. Later I parameterized the pipeline, started reading the latest GDELT file information dynamically and added checks so the same file doesn't get ingested again.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;One thing I intentionally did was to keep ADF mostly for &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;data movement&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;, instead of doing transformations there.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Once the files were available in ADLS, I connected the storage with Databricks using &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;Managed Identity + Access Connector + Unity Catalog external locations/volumes&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Then came the part which I really wanted to learn — &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;Auto Loader and Structured Streaming&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;ADLS landing files are streamed into a Bronze Delta table. Bronze is intentionally almost raw and also stores things like source filename, ingestion timestamp and source path.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I created a separate &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;checkpoint location&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt; for this stream.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;This was probably one of the most useful things I learnt because earlier checkpoint was just another Spark term for me. After actually stopping the stream, starting it again and seeing that previously processed files were not processed again, it made much more sense.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;From Bronze I created another stream going into Silver.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Here I parse the GDELT records and create proper article level fields like title, published time, URL, domain, themes, organisations, locations, tone etc.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;So now if a new file arrives in ADLS, it can move through:&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN&gt;Auto Loader → Bronze → Silver&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt; incrementally.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;For the ML side, I created a versioned dataset from Silver.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;I am starting with &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;TF-IDF + Logistic Regression as a baseline&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;, but I don't want the NLP part to stop there. The plan is to compare it with transformer models like DistilBERT/DeBERTa, embeddings, NER and eventually story clustering.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;For expensive training/HPO I am also experimenting with cheaper GPU compute outside Databricks instead of unnecessarily keeping Databricks compute running for hours.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;But the model comes back to Databricks.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;That is where I want to use &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;MLflow, Unity Catalog Model Registry, model versions and production inference&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;The final goal is that whenever a new GDELT file comes:&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;new article → Bronze → Silver → registered model → prediction.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Predictions will be stored in Delta/Gold tables and also written back to an &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN&gt;ADLS backed location&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt; so other systems outside Databricks can consume them.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Still a lot left to build, specially around embeddings, clustering and escalation prediction, but this project has already changed how I look at ML projects.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Earlier I mostly thought:&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;&lt;SPAN&gt;data → model → prediction&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Now I'm thinking more about ingestion, checkpoints, replayability, governance, model lifecycle and how the prediction actually runs when new data comes in.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Would love to hear from people working with Databricks — anything you would design differently in this architecture?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#Databricks #Azure #ADF #ADLS #PySpark #StructuredStreaming #AutoLoader #DeltaLake #UnityCatalog #MLflow #NLP #MLOps #GDELT&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Aug 2026 16:31:55 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/165633#M4662</guid>
      <dc:creator>kartheek_rao</dc:creator>
      <dc:date>2026-08-13T16:31:55Z</dc:date>
    </item>
    <item>
      <title>Re: End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks</title>
      <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/165696#M4663</link>
      <description>&lt;P&gt;This is great, how did you design your Bronze and Silver? does the source always send only incremental data?&lt;/P&gt;</description>
      <pubDate>Fri, 14 Aug 2026 20:52:50 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/165696#M4663</guid>
      <dc:creator>rdokala</dc:creator>
      <dc:date>2026-08-14T20:52:50Z</dc:date>
    </item>
    <item>
      <title>Re: End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks</title>
      <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/166306#M4675</link>
      <description>&lt;P&gt;Thanks for the overview. Since you are using auto loader for files ingestion,Can we say is this pipeline brings real time data or near real time data feed to the ML model?&lt;/P&gt;</description>
      <pubDate>Mon, 24 Aug 2026 11:56:56 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/166306#M4675</guid>
      <dc:creator>krishgarikipati</dc:creator>
      <dc:date>2026-08-24T11:56:56Z</dc:date>
    </item>
    <item>
      <title>Re: End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks</title>
      <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/166308#M4676</link>
      <description>&lt;P&gt;Really like this approach. The shift from just “data → model” to thinking about ingestion, replayability, and model lifecycle is what makes this feel like a real-world ML project.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Aug 2026 12:41:27 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/166308#M4676</guid>
      <dc:creator>ThiamLee</dc:creator>
      <dc:date>2026-08-24T12:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: End-to-End Streaming NLP Pipeline with GDELT, Azure Data Factory, ADLS Gen2 and Databricks</title>
      <link>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/167380#M4687</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/247784"&gt;@kartheek_rao&lt;/a&gt;, you are on the right track.&lt;/P&gt;&lt;P&gt;Since you are doing clustering of new articles, it's unsupervised learning; you need to understand the feature engineering part more and the EDA part with MLFlow experiments.&amp;nbsp;&lt;BR /&gt;You have model monitoring as well, which you can explore more, and model explainability as well. It's LLM age now; since you are starting with machine learning its fine, if you are using LLM model you dont need all above.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Sep 2026 07:37:14 GMT</pubDate>
      <guid>https://community.databricks.com/t5/machine-learning/end-to-end-streaming-nlp-pipeline-with-gdelt-azure-data-factory/m-p/167380#M4687</guid>
      <dc:creator>kunduruanil</dc:creator>
      <dc:date>2026-09-03T07:37:14Z</dc:date>
    </item>
  </channel>
</rss>

