मुख्य सामग्री पर जाएँ

Databricks नोटबुक को जानें: एक संपूर्ण गाइड

Databricks Notebooks को कैसे मैनेज करें सीखें। बहु-भाषा सपोर्ट, शेड्यूलिंग, वर्शन कंट्रोल, और मैजिक कमांड का उपयोग करके अपने वर्कफ़्लो को ऑप्टिमाइज़ करें।
· 10 मि॰ पढ़ें

AI के साथ खोजें

Databricks एक एकीकृत एनालिटिक्स प्लेटफ़ॉर्म के रूप में काम करता है, जो डेटा इंजीनियरिंग, मशीन लर्निंग और बिज़नेस एनालिटिक्स को एक साथ जोड़ने में सक्षम बनाता है। इस इकोसिस्टम के केंद्र में Databricks Notebooks हैं—इंटरैक्टिव वर्कस्पेस जो डेटा एक्सप्लोरेशन, मॉडल विकास और प्रोडक्शन वर्कफ़्लो के लिए डिज़ाइन किए गए हैं।

इस लेख में, मैं आपको Databricks Notebooks के साथ शुरुआत करना दिखाऊंगा। यदि आप बिल्कुल नए हैं, तो आप हमारे Introduction to Databricks कोर्स में नामांकन करके शुरू करना चाहेंगे ताकि आप Databricks की बारीकियों और यह डेटा आर्किटेक्चर को कैसे आधुनिक बनाता है, समझ सकें। हमारा कोर्स बहुत व्यापक है और इसमें कैटलॉग मैनेजमेंट और डेटा इन्जेशन सहित कई चीज़ें सिखाई जाती हैं, तो इसे ज़रूर आज़माएँ।

Databricks Notebooks क्या हैं?

Databricks Notebooks इंटरैक्टिव, क्लाउड-आधारित वर्कस्पेस हैं जो उपयोगकर्ताओं को सहयोगी वातावरण में डेटा एक्सप्लोरेशन, इंजीनियरिंग, मशीन लर्निंग और एनालिटिक्स करने में सक्षम बनाते हैं। वे सेल-आधारित निष्पादन मॉडल का उपयोग करते हैं, जहाँ उपयोगकर्ता कोड को अलग-अलग ब्लॉक या सेल में लिख और चला सकते हैं।

समर्थित भाषाएँ

Databricks Notebooks में बहु-भाषा सपोर्ट है, इसलिए आप न केवल अपनी पसंदीदा भाषा चुन सकते हैं बल्कि एक ही नोटबुक के भीतर भाषाओं के बीच स्विच भी कर सकते हैं। भाषाओं में Python, SQL, Scala, और R शामिल हैं—जिनके लिए हम परिचयात्मक कोर्स भी प्रदान करते हैं।

अब, बहु-भाषा इंटरऑपरेबिलिटी को आसान बनाने के लिए, Databricks तथाकथित मैजिक कमांड प्रदान करता है:

  • %python: Python का उपयोग करके एक सेल चलाता है।

  • %sql: SQL क्वेरी चलाता है।

  • %scala: Scala-आधारित कमांड प्रोसेस करता है।

  • %r: R कोड निष्पादित करता है।

मुख्य विशेषताएँ

Databricks Notebooks पारंपरिक कोडिंग वातावरण से आगे बढ़कर निम्नलिखित प्रमुख क्षमताएँ प्रदान करते हैं:

  • रियल-टाइम सह-लेखन: कई उपयोगकर्ता एक साथ नोटबुक्स को संपादित, निष्पादित और उन पर टिप्पणी कर सकते हैं, जिससे सहज सहयोग संभव होता है।
  • स्वचालित वर्शनिंग: बिल्ट-इन वर्शन हिस्ट्री उपयोगकर्ताओं को बदलावों को ट्रैक करने, संपादन वापस लेने और कोड इंटीग्रिटी बनाए रखने देती है।
  • इंटरैक्टिव निष्पादन: उपयोगकर्ता व्यक्तिगत सेल या संपूर्ण वर्कफ़्लो चला सकते हैं, जिससे डिबगिंग और आवर्तक विकास अधिक कुशल बनता है।
  • बिल्ट-इन विज़ुअलाइज़ेशन: बाहरी लाइब्रेरी के बिना चार्ट, टेबल और डैशबोर्ड रेंडर करने के लिए इंटीग्रेटेड सपोर्ट।
  • Git इंटीग्रेशन: Git रिपॉजिटरी के लिए नेटिव सपोर्ट वर्शन कंट्रोल, कोड शेयरिंग और CI/CD वर्कफ़्लो सक्षम करता है।

Databricks Notebooks के साथ शुरुआत

फीचर्स के बारे में पढ़ना एक बात है, लेकिन उन्हें खुद देखना दूसरी। Databricks की असली सराहना करने का सबसे अच्छा तरीका है कि आप खुद चीज़ें करना शुरू करें। तो, इस सेक्शन में, मैं आपको Databricks वर्कस्पेस में नोटबुक्स बनाने, मैनेज करने और नेविगेट करने की शुरुआत करने में मदद करूँगा। फिर, मुझे यकीन है कि आप खुद देखेंगे कि यह कितना उपयोगी है।

नोटबुक बनाना और प्रबंधित करना

Databricks वर्कस्पेस में, आप नई नोटबुक बना सकते हैं या मौजूदा नोटबुक्स को मैनेज कर सकते हैं। आइए नीचे इन तरीकों को देखें।

Databricks वर्कस्पेस में नई नोटबुक कैसे बनाएँ

Databricks में नई नोटबुक बनाने के लिए:

  • अपने Databricks Workspace पर जाएँ।

Databricks Workspace.

Databricks Workspace. छवि: लेखक द्वारा।

  • क्लिक करें Workspace > Create > Notebook।

Create Databricks Notebook.

Databricks Notebook बनाएँ। छवि: लेखक द्वारा।

  • एक नाम दें, डिफ़ॉल्ट भाषा चुनें, और क्लस्टर अटैच करें।

Select the name and default language for Databricks Notebook.

Databricks Notebook के लिए नाम और डिफ़ॉल्ट भाषा चुनें। छवि: लेखक द्वारा।

मौजूदा नोटबुक्स इम्पोर्ट करना

Databricks उपयोगकर्ताओं को कई स्रोतों से नोटबुक्स इम्पोर्ट करने की अनुमति देता है, जैसे GitHub और Git रिपॉजिटरी, बाहरी URLs, या लोकल फ़ाइलें जिन्हें .dbc (Databricks archive) या .ipynb (Jupyter) फ़ाइलों के रूप में अपलोड किया गया हो।

मौजूदा नोटबुक्स को Databricks Workspace में इम्पोर्ट करने के लिए निम्न चरणों का पालन करें:

  • क्लिक करें Workspace > Import।

Import existing notebook to Databricks Workspace.

मौजूदा नोटबुक को Databricks Workspace में इम्पोर्ट करें। छवि: लेखक द्वारा।

  • Source चुनें (URL, फ़ाइल, या Git)।

  • नोटबुक अपलोड करें या उसका लिंक दें।

नाम बदलना, व्यवस्थित करना, और एक्सेस मैनेज करना

Databricks Notebook का नाम बदलने के लिए, नोटबुक के शीर्षक पर क्लिक करें और नाम संपादित करें।

Renaming Databricks Notebook.

आप बेहतर स्ट्रक्चरिंग के लिए नोटबुक्स को फ़ोल्डरों में भी मूव कर सकते हैं।

Databricks Notebooks को फ़ोल्डर में मूव करना। छवि: लेखक द्वारा।

अपना Databricks Notebook साझा करने से पहले, आप एक्सेस और परमिशन मैनेज कर सकते हैं ताकि नियंत्रित कर सकें कि कौन नोटबुक देख सकता है, एडिट कर सकता है या मैनेज कर सकता है।

बेसिक नेविगेशन और UI ओवरव्यू

Databricks Notebooks का उपयोग करने के हैंड्स-ऑन उदाहरणों पर जाने से पहले, मैं आपको प्लेटफ़ॉर्म के UI और नेविगेशन से अवगत करा देता हूँ।

टूलबार, सेल एक्शंस, और दाएँ साइडबार का ओवरव्यू

Databricks Notebook टूलबार निम्नलिखित एक्शंस तक तेज़ पहुँच प्रदान करता है:

  • Run: व्यक्तिगत सेल या पूरी नोटबुक चलाएँ। प्रत्येक सेल में निम्न विकल्प होते हैं:
  • सेल चलाना, संपादित करना, हटाना, या मूव करना।

  • सेल प्रकार बदलना जैसे कोड, मार्कडाउन, SQL, या Scala।

  • मैजिक कमांड सेट करना, जैसे %python या %sql।

Running a cell in Databricks Notebook.

Databricks Notebook में एक सेल चलाना। छवि: लेखक द्वारा।

  • Clear State: वेरिएबल और निष्पादन स्टेट रीसेट करें।

Reset variables and execution state in Databricks Notebook.

Databricks Notebook में वेरिएबल और निष्पादन स्टेट रीसेट करें। छवि: लेखक द्वारा।

  • View Mode: एडिट और प्रेज़ेंटेशन मोड के बीच स्विच करें।
  • Comments: विशिष्ट सेल पर सहयोगी फीडबैक जोड़ें।

Comments in Databricks Notebook.

Databricks Notebook में टिप्पणियाँ। छवि: लेखक द्वारा।

  • Revisions: पिछले वर्शन देखें और रीस्टोर करें।

Version history in Databricks Notebook.

Databricks Notebook में वर्शन हिस्ट्री। छवि: लेखक द्वारा।

नई UI एन्हांसमेंट्स

Databricks ने अधिक सहज अनुभव के लिए कई UI सुधार पेश किए हैं। इन एन्हांसमेंट्स के साथ, Databricks Notebooks डेटा प्रोफेशनल्स के लिए और भी अधिक सरल और शक्तिशाली डेवलपमेंट वातावरण प्रदान करते हैं। इनमें निम्न शामिल हैं:

  • आधुनिक रूप और अनुभव: अधिक साफ़-सुथरा, उपयोगकर्ता-अनुकूल इंटरफ़ेस।
  • सुधरा हुआ Markdown संपादन: फ़ॉर्मेटिंग और विज़ुअल्स एम्बेड करने के लिए उन्नत सपोर्ट।
  • फोकस मोड: अनावश्यक UI तत्वों को छुपाकर व्यवधान कम करें।
  • इंटरैक्टिव डिबगिंग: स्टेप-बाय-स्टेप निष्पादन और एरर ट्रेसिंग के लिए नए डिबगिंग टूल्स।

हैंड्स-ऑन: कोड लिखना और चलाना

Databricks Notebooks एक इंटरैक्टिव कोडिंग वातावरण प्रदान करते हैं जहाँ उपयोगकर्ता अपना कोड लिख, चला और डॉक्युमेंट कर सकते हैं। इस सेक्शन में, मैं कोड सेल, Markdown, और कुशलतापूर्वक कोड चलाने पर चर्चा करूँगा।

कोड सेल और Markdown

Databricks Notebooks एक ही नोटबुक के भीतर Python, SQL, Scala और R सहित कई भाषाओं का समर्थन करते हैं।

Databricks Notebook में Python कोड लिखना

Databricks Notebook में किसी सेल में Python कोड लिखने के लिए %python मैजिक कमांड का उपयोग करें।

%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header", "true").load("/databricks-datasets/airlines/part-00000")
pd_df = df.limit(5).toPandas()  # Convert to Pandas DataFrame
display(pd_df)  # Works in Databricks

Example of Python code in Databricks Notebook.

Databricks Notebook में Python कोड का उदाहरण। छवि: लेखक द्वारा।

Databricks Notebook में SQL कोड लिखना

Databricks Notebook में SQL कोड लिखने के लिए %sql मैजिक कमांड का उपयोग करें। यदि आपने SQL को नोटबुक की डिफ़ॉल्ट भाषा के रूप में सेट किया है, तो आप %sql मैजिक कमांड के बिना भी सेल चला सकते हैं।

-- Querying a dataset in SQL
SELECT origin, dest, COUNT(*) AS flight_count 
FROM flights_table 
GROUP BY origin, dest 
ORDER BY flight_count DESC 
LIMIT 10;

SQL code in Databricks Notebook.

Databricks Notebook में SQL कोड। छवि: लेखक द्वारा।

Databricks Notebook में Scala कोड लिखना

Databricks Notebook में किसी सेल में Scala कोड लिखने के लिए %scala मैजिक कमांड का उपयोग करें।

%scala
// Reading and displaying data in Scala
val data = spark.read.option("header", "true").csv("/databricks-datasets/airlines/part-00000")

// Display as a table in Databricks
display(data)

Scala code in Databricks Notebook.

Databricks Notebook में Scala कोड। छवि: लेखक द्वारा।

Databricks Notebook में R कोड लिखना

आप %r मैजिक कमांड का उपयोग करके Databricks Notebook सेल में R कोड भी लिख सकते हैं।

%r
# Load a sample dataset in R
library(SparkR)
df <- read.df("/databricks-datasets/airlines/part-00000", source = "csv", header = "true")
head(df)

R code in Databricks Notebook.

Databricks Notebook में R कोड। छवि: लेखक द्वारा।

डॉक्युमेंटेशन के लिए Markdown सेल का उपयोग

Markdown सेल का उपयोग टेक्स्ट, हेडिंग्स, सूचियाँ और अन्य डॉक्युमेंटेशन जोड़ने के लिए किया जाता है। निम्न उदाहरण दिखाता है कि Databricks Notebook में एक Markdown सेल कैसे लिखें और उसके परिणाम कैसे प्रदर्शित होते हैं।

%md
# Data Exploration Notebook  
This notebook explores airline flight data, providing insights into flight frequency and destinations.  

## **Steps:**  
1. Load and display the dataset  
2. Query data using SQL  
3. Generate visualizations

Example of Markdown cells in Databricks Notebook.

सेल चलाना

Databricks Notebooks व्यक्तिगत या बैच सेल रन के माध्यम से कोड के लचीले निष्पादन की अनुमति देते हैं। 

व्यक्तिगत सेल चलाना और सभी सेल चलाना

एक सिंगल सेल चलाने के लिए, सेल में Run बटन (▶) पर क्लिक करें या कीबोर्ड शॉर्टकट का उपयोग करें:

  • Shift + Enter: मौजूदा सेल चलाता है और अगले पर जाता है।
  • Ctrl + Enter: सेल को अगले पर जाए बिना चलाता है।

पूरी नोटबुक के सभी सेल चलाने के लिए:

  • टूलबार से Run All पर क्लिक करें।
  • यह नोटबुक को ऊपर से नीचे तक क्रमवार चलाता है।

Executing individual and running all cells in Databricks Notebook.

Databricks Notebook में व्यक्तिगत सेल और सभी सेल चलाना। छवि: लेखक द्वारा।

आउटपुट देखना

Databricks Notebooks कई आउटपुट फ़ॉर्मैट का समर्थन करते हैं, जिनमें टेबल, चार्ट और लॉग शामिल हैं। उदाहरण के लिए, निम्न Python कोड ‘airlines’ डेटासेट की पहली 5 पंक्तियाँ दिखाता है।

%python
import pandas as pd
# Load sample data and display the first few rows
df = spark.read.format("csv").option("header", "true").load("/databricks-datasets/airlines/part-00000")
# Displaying the first 5 rows of a DataFrame
display(df.limit(5))

View inputs in Databricks Notebook.

Databricks Notebook में इनपुट देखें। छवि: लेखक द्वारा।

हम Databricks Notebooks का उपयोग सेल के आउटपुट को विज़ुअलाइज़ करने के लिए भी कर सकते हैं। उदाहरण के लिए, नीचे दिया गया Python कोड शीर्ष 10 सबसे अधिक बार आने वाले एयरलाइन कैरियर का चयन करता है, डेटा को PySpark से Pandas में कन्वर्ट करता है, और फिर Matplotlib का उपयोग करके एक बार चार्ट बनाता है।

%python
# Import necessary libraries
import matplotlib.pyplot as plt
import pandas as pd

# Load the dataset using PySpark
df = spark.read.option("header", "true").csv("/databricks-datasets/airlines/part-00000")

# Select the top 10 most frequent airlines (carrier column)
top_airlines = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)

# Convert PySpark DataFrame to Pandas DataFrame
pd_df = top_airlines.toPandas()

# Convert count column to integer (since it's a string in CSV)
pd_df["count"] = pd_df["count"].astype(int)

# Plot a bar chart
plt.figure(figsize=(10, 6))
plt.bar(pd_df["UniqueCarrier"], pd_df["count"], color="#ac4ce4")

# Add titles and labels
plt.xlabel("Airline Carrier", fontsize=12)
plt.ylabel("Flight Count", fontsize=12)
plt.title("Top 10 Most Frequent Airline Carriers", fontsize=14)
plt.xticks(rotation=45)  # Rotate x-axis labels for better readability

# Show the plot
plt.show()

Visualizing outputs in Databricks Notebook.

Databricks Notebook में आउटपुट का विज़ुअलाइज़ेशन। छवि: लेखक द्वारा।

इसी तरह, आप Databricks Notebook में किसी एकल सेल के निष्पादन से कई आउटपुट भी दिखा सकते हैं। उदाहरण के लिए, नीचे दिए गए कोड का आउटपुट एयरलाइंस डेटासेट की शीर्ष 5 पंक्तियाँ और शीर्ष 10 सबसे अधिक बार आने वाले एयरलाइन कैरियर्स की गिनती दिखाएगा।

%python
# Show the top 5 rows in an interactive table
display(df.limit(5))

# Show the top 10 most frequent airline carriers
top_carriers = df.groupBy("UniqueCarrier").count().orderBy("count", ascending=False).limit(10)
display(top_carriers)

Displaying multiple outputs from the execution of a single cell in Databricks Notebook.

Databricks Notebook में एकल सेल के निष्पादन से कई आउटपुट प्रदर्शित करना। छवि: लेखक द्वारा।

उन्नत Databricks Notebook फीचर्स

Databricks Notebooks शक्तिशाली ऑटोमेशन, वर्शनिंग और इंटीग्रेशन क्षमताएँ प्रदान करते हैं जो उत्पादकता, सहयोग और संचालन दक्षता को बढ़ाते हैं। इस सेक्शन में, मैं Databricks Notebooks की क्षमता को अधिकतम करने के लिए प्रमुख उन्नत फीचर्स और सर्वोत्तम प्रथाओं का अन्वेषण करूँगा।

ऑटोमेशन और शेड्यूलिंग

Databricks उपयोगकर्ताओं को नोटबुक निष्पादन को जॉब्स के रूप में शेड्यूल करके स्वचालित करने और डायनेमिक निष्पादन के लिए इनपुट को पैरामीटराइज़ करने की अनुमति देता है।

नोटबुक्स को जॉब्स के रूप में शेड्यूल करना

उपयोगकर्ता नोटबुक्स को निर्दिष्ट अंतराल पर चलाने के लिए शेड्यूल कर सकते हैं, जिससे ETL, रिपोर्टिंग और मॉडल ट्रेनिंग के लिए स्वचालित वर्कफ़्लो सुनिश्चित होते हैं। नोटबुक जॉब शेड्यूल करने के लिए निम्न चरणों का पालन करें:

  • नोटबुक खोलें और Run as Job पर क्लिक करें या Jobs टैब पर जाएँ।
  • Create Job पर क्लिक करें और नोटबुक चुनें।

Creating Job Run in Databricks Notebook.

Databricks Notebook में जॉब रन बनाना। छवि: लेखक द्वारा।

  • शेड्यूल और ट्रिगर कॉन्फ़िगर करें—डेली, आवरली, और कस्टम क्रॉन जॉब्स।

Configuring schedules and triggers in Databricks Notebook.

Databricks Notebook में शेड्यूल और ट्रिगर कॉन्फ़िगर करना। छवि: लेखक द्वारा।

  • क्लस्टर अटैच करें और ज़रूरत हो तो डिपेंडेंसी सेट करें।
  • तुरंत निष्पादित करने के लिए Run Now पर क्लिक करें या इसे शेड्यूल पर चलने दें।

Executing Job Runs in Databricks Notebook.

Databricks Notebook में जॉब रन निष्पादित करना। छवि: लेखक द्वारा।

डायनेमिक निष्पादन के लिए पैरामीटर्स और विजेट्स का उपयोग

Databricks विजेट्स आपको पैरामीटर्स को डायनेमिक रूप से परिभाषित करने देते हैं, जिससे एक ही नोटबुक अलग-अलग इनपुट के साथ चल सकती है। उदाहरण के लिए, निम्न dbutils.widgets.text() विजेट "Enter Parameter" लेबल वाला इंटरैक्टिव टेक्स्ट इनपुट विजेट बनाता है, जिसका डिफ़ॉल्ट मान default_value है। इसके बाद यह विजेट से उपयोगकर्ता द्वारा दर्ज मान प्राप्त करता है और उसे प्रिंट करता है।

dbutils.widgets.text("input_param", "default_value", "Enter Parameter")
param_value = dbutils.widgets.get("input_param")
print(f"User Input: {param_value}")

इसी तरह, नीचे दिया गया कोड dataset लेबल वाला एक ड्रॉपडाउन मेनू जनरेट करता है जिसमें sales, marketing, और finance विकल्प होते हैं, और डिफ़ॉल्ट रूप से sales चुना जाता है। यह उपयोगकर्ता द्वारा चुना गया विकल्प प्राप्त करता है और चयनित डेटासेट को प्रिंट करता है।

dbutils.widgets.dropdown("dataset", "sales", ["sales", "marketing", "finance"])
selected_dataset = dbutils.widgets.get("dataset")
print(f"Processing {selected_dataset} dataset")

वर्शनिंग और सहयोग

Databricks बिल्ट-इन वर्शनिंग और सहयोगी फीचर्स प्रदान करता है, जिससे बदलावों को ट्रैक करना, पिछले वर्शन रीस्टोर करना और टीमों के साथ रियल-टाइम में काम करना आसान हो जाता है।

स्वचालित वर्शन हिस्ट्री और Git इंटीग्रेशन

Databricks Notebook में हर बदलाव स्वतः वर्शन किया जाता है। वर्शन हिस्ट्री के लिए आप निम्न कर सकते हैं:

  • Version History देखें: बदलावों को ट्रैक करने के लिए Revision History पर क्लिक करें।

Viewing version history in Databricks Notebook.

Databricks Notebook में वर्शन हिस्ट्री देखना। छवि: लेखक द्वारा।

  • पिछले वर्शन रीस्टोर करें: आवश्यकता होने पर पुराने स्टेट पर वापस जाएँ।
  • Git इंटीग्रेशन का उपयोग करें: वर्शन कंट्रोल के लिए नोटबुक्स को GitHub, Azure DevOps या Bitbucket के साथ सिंक करें।

रियल-टाइम सहयोग फीचर्स

Databricks Notebooks निम्नलिखित फीचर्स के माध्यम से टीमों को सह-लेखन, टिप्पणी करने और इनसाइट्स साझा करने में सक्षम बनाते हैं:

  • रियल-टाइम सह-संपादन: कई उपयोगकर्ता एक साथ नोटबुक एडिट कर सकते हैं।
  • इनलाइन कमेंटिंग: चर्चाओं के लिए कोड की विशिष्ट लाइनों पर टिप्पणियाँ जोड़ें।
  • शेयरिंग और परमिशन: Viewer, Editor और Owner जैसी भूमिकाएँ असाइन करके एक्सेस नियंत्रित करें।

अन्य टूल्स के साथ इंटीग्रेशन

Databricks Notebooks, Delta Live Tables, MLflow, SQL Warehouses और CI/CD पाइपलाइनों के साथ इंटीग्रेट होकर कार्यक्षमता का विस्तार करता है।

Delta Live Tables के साथ Databricks का उपयोग

Delta Live Tables (DLT) डिक्लेरेटिव ETL के साथ डेटा पाइपलाइन ऑटोमेशन को सरल बनाती हैं। निम्न क्वेरी SQL में एक Delta Live Table पाइपलाइन बनाती है।

-- Creating a live table called 'sales_cleaned' that stores cleaned data
CREATE LIVE TABLE sales_cleaned AS

    -- Selecting all columns where the 'order_status' is 'completed'
    SELECT * 
    FROM raw_sales
    WHERE order_status = 'completed'; 

एक्सपेरिमेंट ट्रैकिंग के लिए MLflow

Databricks के साथ इंटीग्रेटेड MLflow मशीन लर्निंग एक्सपेरिमेंट्स को ट्रैक करने की अनुमति देता है। उदाहरण के लिए, नीचे दिया गया कोड एक ट्रैक्ड एक्सपेरिमेंट के हिस्से के रूप में किसी मशीन लर्निंग मॉडल की लर्निंग रेट और एक्यूरेसी को MLflow में लॉग करता है। लॉगिंग के बाद, यह एक्सपेरिमेंट सत्र समाप्त करता है। यह आपको समय के साथ हाइपरपैरामीटर्स और मॉडल परफ़ॉर्मेंस को ट्रैक करने और अलग-अलग रन की तुलना करने देता है।

# Import the MLflow library for experiment tracking
import mlflow
mlflow.start_run()
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.95)

mlflow.end_run()

नोटबुक्स एक्सपोर्ट करना और CI/CD इंटीग्रेशन

Databricks Notebooks को निम्न सहित कई फ़ॉर्मैट में एक्सपोर्ट किया जा सकता है:

  • .html: केवल-पढ़ने योग्य रिपोर्ट साझा करें।

  • .ipynb: Jupyter Notebooks में कन्वर्ट करें।

  • .dbc: पोर्टेबिलिटी के लिए Databricks Archive।

उदाहरण के लिए, आप CLI के माध्यम से निम्न कमांड का उपयोग करके कोई नोटबुक एक्सपोर्ट कर सकते हैं।

databricks workspace export /Users/my_notebook /local/path/my_notebook.ipynb

Databricks Notebooks में महारत के लिए टिप्स और ट्रिक्स

Databricks Notebooks वर्कफ़्लो को सरल बनाने, उत्पादकता बढ़ाने और सहयोग में सुधार करने के लिए कई शक्तिशाली फीचर्स प्रदान करते हैं। इस सेक्शन में, मैं आपको मैजिक कमांड्स, UI एन्हांसमेंट्स, डेटा एक्सप्लोरेशन तकनीकें, और कोड मैनेजमेंट स्ट्रैटेजीज़ दिखाऊँगा जिन्हें मैंने Databricks Notebooks प्लेटफ़ॉर्म पर नेविगेट करते समय उपयोगी पाया है।

मैजिक कमांड्स

Databricks ऐसे मैजिक कमांड्स प्रदान करता है जो स्क्रिप्ट चलाने, फ़ाइल मैनेज करने और पैकेज इंस्टॉल करने जैसे कार्यों को सरल बनाते हैं।

%run

वर्कफ़्लो को मॉड्यूलराइज़ करने के लिए मौजूदा नोटबुक के भीतर किसी दूसरी नोटबुक को निष्पादित करने हेतु आप %run कमांड का उपयोग कर सकते हैं। आप बड़े प्रोजेक्ट्स को पुन: प्रयोज्य नोटबुक्स में बाँटने के लिए भी %run का उपयोग कर सकते हैं। उदाहरण के लिए, निम्न कमांड data_preprocessing नोटबुक चलाता है ताकि उसके वेरिएबल्स, फ़ंक्शंस, और आउटपुट मौजूदा नोटबुक में उपलब्ध हो जाएँ।

%run /Users/john.doe/notebooks/data_preprocessing

%sh

%sh कमांड आपको सीधे नोटबुक में Linux शेल कमांड्स निष्पादित करने देता है। नीचे दिए गए उदाहरण में, कमांड /dbfs/data/ DBFS की सामग्री सूचीबद्ध करेगा।

%sh ls -lh /dbfs/data/

%fs

इसी प्रकार, %fs कमांड Databricks File System (DBFS) के साथ फ़ाइल ऑपरेशंस के लिए इंटरैक्ट करने देता है। उदाहरण के लिए, नीचे दिया गया कमांड /databricks-datasets/ के भीतर सभी फ़ाइलों और डायरेक्टरीज़ को सूचीबद्ध करता है, जिसमें Databricks द्वारा प्रदान किए गए सार्वजनिक डेटासेट होते हैं।

%fs ls /databricks-datasets/

इसी तरह, आप फ़ाइल कॉपी करने के लिए %fs cp, फ़ाइल हटाने के लिए %fs rm, और फ़ाइल प्रीव्यू के लिए %fs head का उपयोग कर सकते हैं।

%pip

%pip कमांड नोटबुक वातावरण के भीतर Python पैकेज इंस्टॉल करता है। निम्न कमांड मौजूदा नोटबुक सत्र के भीतर matplotlib पैकेज इंस्टॉल करेगा।

%pip install pandas matplotlib

%pip freeze कमांड इंस्टॉल किए गए पैकेज सूचीबद्ध करने और पुनरुत्पादकता सुनिश्चित करने के लिए उपयोग होता है।

UI एन्हांसमेंट्स

Databricks ने निम्न UI एन्हांसमेंट्स पेश किए हैं जो नेविगेशन, डिबगिंग और समग्र उपयोगकर्ता अनुभव में सुधार करते हैं:

  • नया परिणाम टेबल: सॉर्टेबल और फ़िल्टर करने योग्य टेबल्स के साथ क्वेरी परिणामों का बेहतर विज़ुअलाइज़ेशन।
  • सुधरा हुआ Markdown एडिटर: बेहतर फ़ॉर्मेटिंग, कोड ब्लॉक्स और एम्बेडेड इमेजेज़।
  • इंटरैक्टिव डिबगर: जटिल स्क्रिप्ट्स की ट्रबलशूटिंग के लिए स्टेप-थ्रू डिबगिंग।
  • इनलाइन असिस्टेंट (Databricks AI Assistant): कोड ऑटो-कम्प्लीट करता है, सुधार सुझाता है, और दक्षता बढ़ाता है।

मैं हमेशा फोकस मोड (View → Focus Mode) सक्षम करने की सलाह देता/देती हूँ ताकि व्यवधान न्यूनतम हों।

डेटा एक्सप्लोरेशन तकनीकें

Databricks नोटबुक्स के भीतर ही डेटासेट ब्राउज़ करने, स्कीमा समझने और डेटा प्रोफाइलिंग के लिए बिल्ट-इन टूल्स प्रदान करता है।

DBFS में डेटासेट ब्राउज़ करने के लिए %fs ls या display(dbutils.fs.ls()) का उपयोग करके उपलब्ध डेटासेट्स देखें।

display(dbutils.fs.ls("/databricks-datasets/"))

आप नीचे दिए गए चरणों का पालन करके सीधे UI साइडबार में भी टेबल स्कीमा एक्सप्लोर कर सकते हैं:

  • वर्कस्पेस में Data पर क्लिक करें।
  • डेटाबेस और टेबल ब्राउज़ करें।
  • डेटा और स्कीमा का प्रीव्यू देखने के लिए किसी टेबल पर क्लिक करें।

डेटा प्रोफाइलिंग के लिए, आप display() या SQL क्वेरीज़ का उपयोग करके डेटा को समरीज़ कर सकते हैं।

df.describe().show()
%sql
SELECT COUNT(*), AVG(salary), MAX(age) FROM employees;

कोड मैनेजमेंट स्ट्रैटेजीज़

Databricks Notebooks में अपने कोड का प्रबंधन करने के लिए निम्न तकनीकों का उपयोग करें। एक बात तो यह कि पुन: प्रयोज्य कोड स्निपेट्स को अलग नोटबुक्स में स्टोर करें और उन्हें %run का उपयोग करके कॉल करें। साथ ही, ट्रांसफॉर्मेशन के लिए Databricks Utilities (dbutils) का उपयोग करें। इसके अलावा, पढ़ने में आसानी के लिए, PEP 8 (Python) या SQL की सर्वोत्तम प्रथाओं का पालन करना अच्छा विचार है। हमेशा टिप्पणियों के लिए मार्कडाउन सेल का उपयोग करें।

-- Select customer_id and calculate total revenue per customer
SELECT customer_id, SUM(total_amount) AS revenue  
FROM sales_data  
-- Group results by customer to get total revenue per customer
GROUP BY customer_id  
-- Order customers by revenue in descending order (highest first)
ORDER BY revenue DESC  
-- Return only the top 10 customers by revenue
LIMIT 10;

यदि आपको Databricks Notebooks के साथ काम करते समय समस्याएँ आती हैं, तो आप निम्न तरीकों से ट्रबलशूट कर सकते हैं:

  • क्लस्टर अटका हुआ है? कर्नेल रीस्टार्ट करें (Run → Clear State & Restart)।

  • निष्पादन धीमा है? बॉटलनेक्स के लिए Spark UI देखें (Cluster → Spark UI)।

  • वर्शन कॉन्फ्लिक्ट? डिपेंडेंसी चेक करने के लिए %pip list का उपयोग करें।

तेज़ कोडिंग के लिए निम्न कीबोर्ड शॉर्टकट्स का उपयोग करें:

  • Shift + Enter → मौजूदा सेल Run करें।
  • Ctrl + / → चयनित लाइनों को कमेंट/अनकमेंट करें।
  • Esc + A/B → ऊपर/नीचे नया सेल जोड़ें।

वास्तविक दुनिया के उपयोग के मामले और परिदृश्य

Databricks Notebooks का व्यापक उपयोग डेटा इंजीनियरिंग, मशीन लर्निंग और बिज़नेस इंटेलिजेंस में होता है। इस सेक्शन में, मैं वास्तविक दुनिया के केस स्टडीज़ और कोड स्निपेट्स प्रस्तुत करूँगा ताकि दिखा सकूँ कि टीमें प्रोडक्शन वर्कफ़्लो के लिए Databricks Notebooks का कैसे लाभ उठाती हैं।

केस स्टडी 1: डेटा इंजीनियरिंग के लिए ETL पाइपलाइन्स

मान लें कि एक रिटेल कंपनी कच्चा सेल्स डेटा इन्जेस्ट करती है, उसे क्लीन करती है, और रिपोर्टिंग के लिए उसे Delta Lake में स्टोर करती है। प्रक्रिया इस प्रकार होगी:

  • स्टेप 1: क्लाउड स्टोरेज से कच्चा डेटा पढ़ें।
  • स्टेप 2: PySpark का उपयोग करके डेटा को क्लीन और ट्रांसफॉर्म करें।
  • स्टेप 3: क्लीन किया हुआ डेटा Delta टेबल में स्टोर करें।
  • स्टेप 4: नोटबुक को जॉब के रूप में शेड्यूल करें।

यह प्रक्रिया रिपोर्टिंग के लिए डेटा विश्वसनीयता और क्वेरी प्रदर्शन में सुधार करेगी। नीचे दिया गया कोड स्निपेट उपरोक्त समाधान को लागू करने का एक उदाहरण है:

# Read raw sales data from cloud storage
df = spark.read.format("csv").option("header", "true").load("s3://sales-data/raw/")

# Data cleaning and transformation
df_cleaned = df.filter(df["status"] == "completed").dropDuplicates()

# Save to Delta Table for analysis
df_cleaned.write.format("delta").mode("overwrite").saveAsTable("sales_cleaned")

केस स्टडी 2: मशीन लर्निंग मॉडल विकास

एक अन्य परिदृश्य पर विचार करें जहाँ कोई वित्तीय संस्था मशीन लर्निंग मॉडल का उपयोग करके ऋण डिफ़ॉल्ट्स की भविष्यवाणी करती है। इस वर्कफ़्लो को Databricks Notebook में लागू करने के लिए, आप निम्न चरणों का पालन करेंगे। इसका परिणाम MLflow के साथ स्वचालित मॉडल ट्रैकिंग और डिप्लॉयमेंट में होगा।

  • स्टेप 1: ऋण डेटा लोड करें और प्रीप्रोसेस करें।
  • स्टेप 2: MLflow का उपयोग करके लॉजिस्टिक रिग्रेशन मॉडल ट्रेन करें।
  • स्टेप 3: मॉडल को रजिस्टर करें और ट्रैक करें।
# import libraries
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import mlflow

# Load and prepare data
df = spark.read.table("loan_data").toPandas()
X_train, X_test, y_train, y_test = train_test_split(df.drop("default", axis=1), df["default"])

# Train model
model = LogisticRegression()
model.fit(X_train, y_train)

# Log model in MLflow
mlflow.sklearn.log_model(model, "loan_default_model")

केस स्टडी 3: बिज़नेस इंटेलिजेंस के लिए एड-हॉक डेटा विश्लेषण

एक परिदृश्य में जहाँ मार्केटिंग टीम ग्राहक एंगेजमेंट रुझानों का विश्लेषण करती है, आप निम्न चरणों में समाधान लागू करेंगे:

  • स्टेप 1: SQL का उपयोग करके ग्राहक व्यवहार डेटा क्वेरी करें।
  • स्टेप 2: इंटरैक्टिव विज़ुअलाइज़ेशन जनरेट करें।

यह प्रक्रिया इंटरैक्टिव डैशबोर्ड के साथ तेज़ निर्णय-निर्माण की ओर ले जाएगी।

%sql
-- Count the number of interactions per customer segment
SELECT customer_segment, COUNT(*) AS interactions  
FROM user_activity  
-- Group by customer segment to aggregate interaction counts
GROUP BY customer_segment  
-- Order results by interaction count in descending order
ORDER BY interactions DESC;

यदि आपको Databricks SQL के अपने ज्ञान को ताज़ा करने की आवश्यकता है, तो मैं हमारा Databricks SQL ट्यूटोरियल पढ़ने की सलाह देता/देती हूँ ताकि आप Databricks वेब इंटरफ़ेस से SQL Warehouse सेट अप करना सीख सकें।

ट्रबलशूटिंग और FAQs

Databricks नोटबुक्स को समवर्ती रूप से चलाते समय, डिबगिंग और प्रदर्शन बनाए रखना विशिष्ट चुनौतियाँ पेश कर सकता है। यहाँ कुछ सुझाव दिए गए हैं जो आपको प्रोडक्शन वातावरण में अपनी नोटबुक को त्रुटि-मुक्त रखने में मदद करेंगे।

आम ट्रबलशूटिंग समस्याएँ और समाधान

यहाँ कुछ समस्याएँ और अनुशंसित समाधान हैं:

  • एक नोटबुक जो व्यक्तिगत रूप से ठीक चलती है, कई उपयोगकर्ताओं या जॉब्स द्वारा एक साथ चलाए जाने पर फेल हो जाती है: यह समस्या साझा वेरिएबल्स के कारण हो सकती है। साथ ही, एक सिंगल क्लस्टर कई निष्पादनों का समर्थन नहीं कर सकता। इस समस्या को हल करने के लिए, पैरामीटरीकरण के लिए विजेट्स का उपयोग करें या समवर्ती निष्पादन के लिए पर्याप्त संसाधन सुनिश्चित करने हेतु क्लस्टर ऑटोस्केलिंग का उपयोग करें।

  • एक नोटबुक जो पहले तेज़ चलती थी अब काफ़ी अधिक समय ले रही है: समस्या अक्षम Spark ट्रांसफॉर्मेशन के कारण शफल इश्यूज़ या बहुत अधिक कैश/परसिस्टेड डेटासेट्स द्वारा मेमोरी खपत के कारण हो सकती है। इस समस्या को हल करने के लिए, ऑपरेशंस को .persist() और .unpersist() का उपयोग करके करें। साथ ही, स्क्यूड पार्टिशंस के लिए Spark UI मॉनिटर करें और Delta टेबल्स के साथ क्वेरीज को ऑप्टिमाइज़ करें।

  • किसी अन्य नोटबुक को निष्पादित करने की कोशिश में %run फेल होता है: यह तब हो सकता है यदि नोटबुक पाथ गलत है या रेफरेंс की गई नोटबुक किसी अनुपलब्ध क्लस्टर पर निर्भर है। इस समस्या को सुलझाने के लिए, नोटबुक इम्पोर्ट्स के लिए एब्सोल्यूट पाथ का उपयोग करें या क्लस्टर उपलब्धता जाँचें ताकि सुनिश्चित हो कि संदर्भित नोटबुक्स कोई संगत क्लस्टर उपयोग कर रही हैं।

  • शेड्यूल की गई नोटबुक जॉब फेल हो जाती है: ऐसा तब हो सकता है यदि निष्पादन से पहले क्लस्टर टर्मिनेट हो गया हो या कोई बाहरी निर्भरता—जैसे डेटाबेस कनेक्शन या API कॉल—फेल हो गई हो। इस समस्या को हल करने के लिए, फेल्योर पर क्लस्टर रीस्टार्ट सक्षम करें। जॉब सेटिंग्स में Retry on Failure सक्षम करें। साथ ही, बाहरी कॉल्स के लिए Try-Except ब्लॉक्स का उपयोग करें।

जॉब शेड्यूलिंग और स्वचालित पाइपलाइनों को स्केल करने के लिए Databricks REST API का उपयोग करना सीखने हेतु हमारा Mastering the Databricks API ट्यूटोरियल पढ़ें।

प्रोडक्शन में नोटबुक्स को बनाए रखने के लिए सर्वोत्तम प्रथाएँ

प्रोडक्शन में होने पर Databricks Notebooks को बनाए रखने के लिए निम्न तकनीकों का उपयोग करें:

  • कोड को पुन: प्रयोज्य नोटबुक्स में मॉड्यूलराइज़ करें: बड़ी नोटबुक्स को छोटे, पुन: प्रयोज्य यूनिट्स में तोड़ें और उन्हें कॉल करने के लिए %run का उपयोग करें। हेल्पर फ़ंक्शंस को अलग यूटिलिटी नोटबुक्स में स्टोर करें।

  • वर्शन कंट्रोल (Git इंटीग्रेशन) का उपयोग करें: बदलाव ट्रैक करने और वर्शन्स रोलबैक करने के लिए Databricks Repos सक्षम करें।

  • जॉब्स के लिए क्लस्टर चयन को ऑप्टिमाइज़ करें: शेड्यूल्ड रन के लिए इंटरैक्टिव क्लस्टर्स के बजाय जॉब क्लस्टर्स का उपयोग करें।

  • लॉगिंग और अलर्ट्स लागू करें: जॉब स्टेटस लॉग करने के लिए dbutils.notebook.exit() का उपयोग करें। विफलताओं के बारे में टीमों को सूचित करने के लिए Jobs UI में ईमेल अलर्ट भी कॉन्फ़िगर कर सकते हैं।

  • स्पष्टता के लिए कोड डॉक्युमेंट करें और Markdown का उपयोग करें: वर्कफ़्लो स्टेप्स और लॉजिक का वर्णन करने के लिए मार्कडाउन सेल का उपयोग करें।

निष्कर्ष

यदि आप Databricks की बुनियादी अवधारणाओं का अन्वेषण करना चाहते हैं, तो मैं हमारे Introduction to Databricks कोर्स को अत्यधिक सुझाव देता/देती हूँ। यह कोर्स वह सही समझ विकसित करता है जिसकी आपको फिर मैजिक कमांड्स, पैरामीटरीकरण, और परफ़ॉर्मेंस ऑप्टिमाइज़ेशन जैसी उन्नत सुविधाओं के साथ प्रयोग करने के लिए आवश्यकता होगी। अंतिम बात के रूप में, मैं यह भी मानता/मानती हूँ कि आपको यह सीखना चाहिए कि Databricks Certification कैसे प्राप्त करें। हमारी पोस्ट आपको करियर लाभों की जाँच करने और अपने लक्ष्यों के लिए सही सर्टिफ़िकेशन चुनने में मदद करती है।

Allan Ouko

लेखक

Allan Ouko

डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है. 

प्रासंगिक FAQs

Databricks Assistant क्या है?

Databricks Assistant एक AI-आधारित पेयर प्रोग्रामर और सपोर्ट एजेंट है जो आपको नोटबुक्स, क्वेरीज़, डैशबोर्ड्स और फ़ाइलों को अधिक कुशलता से बनाने में मदद करता है। यह कोड और क्वेरी जनरेट, ऑप्टिमाइज़, डिबग, समझा और ठीक कर सकता है।

Databricks Notebooks में कौन-सी भाषाएँ समर्थित हैं?

Databricks Notebooks Python, SQL, Scala, और R का समर्थन करते हैं, और आप %python, %sql, %r, और %scala जैसे मैजिक कमांड्स का उपयोग करके एक ही नोटबुक में अलग-अलग भाषाएँ चला सकते हैं।

क्या कई उपयोगकर्ता एक ही समय में एक ही नोटबुक एडिट कर सकते हैं?

हाँ, Databricks Notebooks रियल-टाइम सह-लेखन का समर्थन करते हैं, जिससे कई उपयोगकर्ता एक ही दस्तावेज़ को एक साथ संपादित और उस पर टिप्पणी कर सकते हैं।

क्या मैं किसी नोटबुक को एक्सपोर्ट या डाउनलोड कर सकता/सकती हूँ?

हाँ, नोटबुक्स को कई फ़ॉर्मैट्स में एक्सपोर्ट किया जा सकता है, जिनमें .ipynb (Jupyter), .dbc (Databricks archive), .py (स्क्रिप्ट), और .html (पढ़ने योग्य फ़ॉर्मैट) शामिल हैं।

मैं नोटबुक निष्पादन प्रदर्शन में कैसे सुधार करूँ?

प्रदर्शन में सुधार करने के लिए, क्लस्टर ऑटोस्केलिंग का उपयोग करें, Delta Lake के साथ डेटा प्रोसेसिंग को ऑप्टिमाइज़ करें, डेटा को प्रभावी ढंग से कैश करें, और अनावश्यक शफल ऑपरेशंस से बचें।

विषय