मुझे एक विंडो फ़ंक्शन की आवश्यकता है जो कुछ कुंजियों (= कॉलम नाम) द्वारा विभाजन, किसी अन्य कॉलम नाम से ऑर्डर करता है और शीर्ष x रैंक वाली पंक्तियां देता है।स्पार्क विंडो कार्यों में अवरोही क्रम के साथ ऑर्डरबी() का उपयोग कैसे करें?
यह आरोही क्रम के लिए ठीक काम करता है:
def getTopX(df: DataFrame, top_x: String, top_key: String, top_value:String): DataFrame ={
val top_keys: List[String] = top_key.split(", ").map(_.trim).toList
val w = Window.partitionBy(top_keys(1),top_keys.drop(1):_*)
.orderBy(top_value)
val rankCondition = "rn < "+top_x.toString
val dfTop = df.withColumn("rn",row_number().over(w))
.where(rankCondition).drop("rn")
return dfTop
}
लेकिन जब मैं लाइन 4 में orderBy(desc(top_value))
या orderBy(top_value.desc)
करने के लिए इसे बदलने की कोशिश, मैं एक वाक्य रचना त्रुटि मिलती है। यहां सही वाक्यविन्यास क्या है?
क्या त्रुटि संदेश आपको मिलने वाला है मिल सकता है? –