मैं छत्ताहाइव क्वेरी
उपयोगकर्ता के आईडी, उपयोगकर्ता के नाम, उपयोगकर्ता के पते, क्लिक, इंप्रेशन, पेज आईडी, पेज-नाम
मैं में तालिका निम्नलिखित है द्वारा समूह में शीर्ष n रिकॉर्ड हो रही प्रत्येक पृष्ठ के लिए क्लिक करके शीर्ष 5 उपयोगकर्ताओं [उपयोगकर्ता-आईडी, उपयोगकर्ता नाम, उपयोगकर्ता-पता] को खोजने की आवश्यकता है [पेज-आईडी, पेज-नाम]
मैं समझता हूं कि हमें पहले पृष्ठ [पृष्ठ- आईडी, पेज-नाम] और प्रत्येक समूह के भीतर मैं ऑर्डर करना चाहता हूं [क्लिक, इंप्रेशन] desc और फिर प्रत्येक पृष्ठ के लिए केवल शीर्ष 5 उपयोगकर्ताओं [उपयोगकर्ता-आईडी, उपयोगकर्ता नाम, उपयोगकर्ता-पता] को छोड़ दें लेकिन मुझे यह मुश्किल लगता है क्वेरी का निर्माण करें।
हम इसे HIve UDF का उपयोग करके कैसे कर सकते हैं?
हाय मैक्सिमे, इस तरह आपको परेशान कर के लिए खेद है: आप नीचे दिए गए क्वेरी
परिणाम उपयोग कर सकते हैं। मुझे भी इसी तरह की समस्या है। मैंने एसओ पर पोस्ट किया है, लेकिन मुझे कोई अच्छी प्रतिक्रिया नहीं मिली है क्योंकि मैं हाइव और हिवेक्यूएल के साथ काम कर रहा हूं, मेरे लिए नया है। [http://stackoverflow.com/questions/11405446/find-10-latest-record-for-each-buyer-id-for-yesterdays-date](http://stackoverflow.com/questions/11405446/find- 10-नवीनतम रिकॉर्ड के लिए प्रत्येक-खरीदार-आईडी के लिए कल की तारीख)। यह मेरे लिए बहुत मददगार होगा। – ferhan
मैंने बस इस काम को बनाने में घंटों लगाए लेकिन यह काम नहीं किया। बग यह है कि आप पहली रैंकिंग कर रहे हैं और फिर डिस्ट्रिब्यूट द्वारा और सॉर्ट कर रहे हैं। इसके बजाय आपको बाहरी क्वेरी में रैंक लागू करना चाहिए और आंतरिक क्वेरी में DISTRIBUTE BY और SORT का उपयोग करना चाहिए। उदाहरण के लिए, चयन पृष्ठ-आईडी, उपयोगकर्ता-आईडी, क्लिक करें (चयन पृष्ठ-आईडी, उपयोगकर्ता-आईडी, रैंक (उपयोगकर्ता-आईडी) रैंक के रूप में, क्लिक करें (चयन करें * पृष्ठ-आईडी, उपयोगकर्ता आईडी आईडी द्वारा मेरेटेबल वितरण से चुनें पेज-आईडी द्वारा, उपयोगकर्ता-आईडी, डीईएससी पर क्लिक करता है) ए) बी WHERE रैंक <5 ऑर्डर पृष्ठ-आईडी, रैंक; –
ने पुष्टि की कि @ हिमांशु गहलोत सही है। जवाब में एक * बग * है! आपको बाहरी क्वेरी में रैंक() का उपयोग करना होगा और आंतरिक क्वेरी में DISTRIBUTE/SORT का उपयोग करना होगा! –