डेटा साइंटिस्ट इंटरव्यू सवाल

आपको किसी feature के लिए दो अरब rows aggregate करनी हैं। यह आप SQL में करेंगे या pandas में खींचेंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

यह warehouse में, SQL में करें। दो अरब rows pandas की memory में समाएंगी नहीं और उन्हें network पर लाना ही धीमा हिस्सा है। filtering, joining और aggregation को engine तक नीचे धकेलें, जो इसी के लिए बना है, और सिर्फ aggregated नतीजा वापस खींचें। जब डेटा इतना छोटा हो जाए कि आराम से memory में बैठ जाए, तब आखिरी मील के लिए pandas या Polars इस्तेमाल करें।

इंटरव्यूअर यह क्यों पूछते हैं

यह इस बारे में व्यावहारिक समझ की जांच है कि गणना कहां होनी चाहिए। इंटरव्यूअर ऐसे बहुत से उम्मीदवार देखते हैं जो आदतन डेटा को dataframe में खींच लेते हैं और फिर सोचते हैं कि job मरा क्यों। वे सुनना चाहते हैं कि compute को डेटा के पास धकेलो, यह समझ कि समय असल में कहां लगता है (network transfer और shuffles), और यह समझदार सीमा कि dataframe वाला काम कहां से शुरू होता है।

अपना जवाब कैसे स्ट्रक्चर करें

  • सीधा जवाब दें: aggregation warehouse में।
  • समझाएं कि अड़चन compute नहीं, transfer और memory है।
  • बताएं कि SQL में क्या रहता है और dataframe में क्या।
  • लागत काबू में रखने के लिए partition pruning या incremental गणना का जिक्र करें।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

SQL, बिना झिझके। दो अरब rows मुझे मिलने वाली किसी भी मशीन पर pandas dataframe में नहीं जाएंगी, और अगर चली भी जातीं तो तार पर होने वाला transfer ही सब कुछ खा जाता। engine इसी पैमाने पर scan और aggregate करने के लिए बना है, उस parallelism के साथ जो मेरे पास स्थानीय तौर पर है ही नहीं। तो मैं filter, join और group by को warehouse में धकेलता हूं और aggregate वापस लाता हूं, जो किसी feature table के लिए आम तौर पर entity और तारीख से keyed कुछ लाख rows होती हैं, और वह आराम से memory में बैठ जाती हैं। मेरी मोटी सीमा यह है कि जो कुछ rows घटाता है वह SQL में, और जो कोई छोटा नतीजा modeling के लिए आकार देता है वह Python में। मुझे लागत की भी परवाह है, तो मैं पक्का करता हूं कि query पूरा इतिहास scan करने के बजाय date column पर partitions prune करे, और अगर feature रोज दोबारा बनता है तो मैं उसे incremental बनाता हूं, हर सुबह तीन साल दोबारा गिनने के बजाय कल का जोड़ देता हूं। एक प्रोजेक्ट पर इस बदलाव ने रात के job को करीब चालीस मिनट से तीन मिनट के नीचे ला दिया, और बिल भी लगभग उतने ही गुना कम हुआ।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • जो query अचानक दस गुना धीमी हो गई हो, उसे आप कैसे debug करेंगे?
  • warehouse के बजाय आप Spark पर कब जाएंगे?
  • आखिरी मील के लिए pandas के बजाय Polars चुनने की वजह क्या होगी?

डेटा साइंटिस्ट के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं