करने के लिए वापस हो रही है मैं जब स्काला के साथ चिंगारी में डेटा फ्रेम के साथ काम कर रहे एक कठिनाई होती है। यदि मेरे पास डेटा फ्रेम है जो मैं अद्वितीय प्रविष्टियों के कॉलम को निकालना चाहता हूं, जब मैं groupBy
का उपयोग करता हूं तो मुझे डेटा फ्रेम वापस नहीं मिलता है।स्पार्क में GroupBy का उपयोग करना और एक DataFrame
उदाहरण के लिए, मैं एक DataFrame
बुलाया लॉग निम्न रूप है कि है:
machine_id | event | other_stuff
34131231 | thing | stuff
83423984 | notathing | notstuff
34131231 | thing | morestuff
और मैं जहां घटना बात एक नए DataFrame
में संग्रहित है अद्वितीय मशीन आईडी चाहते हैं मुझे कुछ छानने करने के लिए अनुमति देने के लिए किसी तरह की। का उपयोग करते हुए
val machineId = logs
.where($"event" === "thing")
.select("machine_id")
.groupBy("machine_id")
मैं जो (या मैं कैसे ठीक वस्तु इस तरह का उपयोग करने के लिए पता नहीं है) बट का उपयोग करने में एक दर्द है वापस समूहीकृत आंकड़ों की एक वैल मिलता है। अद्वितीय मशीन आईडी की यह सूची प्राप्त करने के बाद, मैं व्यक्तिगत मशीन आईडी के लिए सभी ईवेंट निकालने के लिए इसे DataFrame
फ़िल्टर करने में इसका उपयोग करना चाहता हूं।
मैं मैं काफी नियमित रूप से बात इस तरह का क्या करना चाहता हूँ देख सकते हैं और बुनियादी कार्यप्रवाह है:
- निकालें विशिष्ट आईडी एक लॉग मेज से की।
- किसी विशेष आईडी के लिए सभी ईवेंट निकालने के लिए अद्वितीय आईडी का उपयोग करें।
- इस डेटा को उस निकाला गया है पर विश्लेषण के कुछ प्रकार का उपयोग करें।
यह पहला दो कदम है जो मैं यहां कुछ मार्गदर्शन की सराहना करता हूं।
मैं इस उदाहरण की सराहना करते हैं एक तरह से काल्पनिक है, लेकिन उम्मीद है कि यह बताता है कि मेरी मुद्दा है। हो सकता है कि मुझे GroupedData
ऑब्जेक्ट्स के बारे में पर्याप्त जानकारी न हो या (जैसा कि मैं उम्मीद कर रहा हूं) मुझे डेटा फ्रेम में कुछ याद आ रहा है जो इसे आसान बनाता है। मैं स्काला 2.10.4 पर निर्मित स्पार्क 1.5 का उपयोग कर रहा हूं।
धन्यवाद