/ / डेटासेट अपाचे स्पार्क - जावा, अपाचे-स्पार्क, स्पार्क-डेटाफ्रेम पर ट्रांसफॉर्मेशन लागू करना

डेटासेट अपाचे स्पार्क - जावा, अपाचे-स्पार्क, स्पार्क-डेटाफ्रेम पर ट्रांसफॉर्मेशन लागू करना

मैं एक हैंडलिंग कर रहा हूँ Dataset<Row>जावा का उपयोग करके अपाचे स्पार्क में और एक करने की आवश्यकता हैइस डेटासेट में सभी कॉलम पर गणित परिवर्तन के जोड़े। असल में परिवर्तनों में से एक यह है कि इस डेटासेट में संग्रहीत सभी मानों का लॉग प्राप्त करें और फिर भी लौट रहे हों Dataset<Row>। मैं स्पष्ट रूप से देखता हूं कि इसे कैसे किया जाए map एक आरडीडी में काम करते हैं, लेकिन मैं इसे कैसे कर सकता हूं Dataset<Row>?

प्रसंग: Dataset<Row> old इसमें 2 कॉलम हैं a तथा b। मैं एक नया वापस करना चाहता हूँ Dataset<Row> new दोनों कॉलम के साथ a = log(a) तथा b = log(b)

उत्तर:

उत्तर № 1 के लिए 1

आप क्या कर सकते हैं यह है कि आप एक विधि बना सकते हैं जो पैरामीटर के रूप में एक [कॉलम] और बी [कॉलम] टाइप करने का मान लेता है और लॉग मान लौटाता है।

मान लीजिए कॉलम ए और कॉलम बी लंबे प्रकार के हैं

public long getLog(long value){
// yourlogic to generate log
}

फिर डेटासेट पर मानचित्र फ़ंक्शन लागू करें। मानचित्र फ़ंक्शन के तहत आपको प्रकार के रूप में मूल्य मिलेगा Row आवेदन getLong/getAs() इसी मान को प्राप्त करने के लिए विधि फिर इस मान को अपने कस्टम लॉग गणना विधि यानी पास करें। getLog हमारे मामले में परिणामस्वरूप मूल्य वापसी।

आपको वापस लौटने की आवश्यकता हो सकती है Tuple2 दोनों मूल्य ए और बी कॉलम के लिए

या आप बना सकते हैं udf उपयोगकर्ता spqrk sql के फ़ंक्शन को परिभाषित करते हैं तो लागू करें withcoumn आवेदन करने के लिए विधि udf

ध्यान दें udf तर्क के रूप में एक [कॉलम] और बी [कॉलम] प्रकार का मान लेगा और लॉग मान वापस कर देगा।

आशा है कि यह काम ठीक है