मैं एक स्काला समारोह है कि एक प्रदान की इनपुट स्ट्रिंग के आधार पर स्पार्क DataTypes अनुमान लगा सकते हैं लिखने के लिए कोशिश कर रहा हूँ:,,का निष्कर्ष निकालते स्पार्क डेटा प्रकार
/**
* Example:
* ========
* toSparkType("string") => StringType
* toSparkType("boolean") => BooleanType
* toSparkType("date") => DateType
* etc.
*/
def toSparkType(inputType : String) : DataType = {
var dt : DataType = null
if(matchesStringRegex(inputType)) {
dt = StringType
} else if(matchesBooleanRegex(inputType)) {
dt = BooleanType
} else if(matchesDateRegex(inputType)) {
dt = DateType
} else if(...) {
...
}
dt
}
मेरा लक्ष्य एक बड़े सबसेट का समर्थन है सब नहीं तो की उपलब्ध DataTypes
। मैं इस समारोह को लागू करने शुरू कर दिया है, मैं सोच को मिला: "स्पार्क/स्काला शायद पहले से ही एक सहायक/util विधि है कि मेरे लिए यह करना होगा।" सब के बाद, मैं जानता हूँ कि मैं कुछ ऐसा कर सकते हैं:
var structType = new StructType()
structType.add("some_new_string_col", "string", true, Metadata.empty)
structType.add("some_new_boolean_col", "boolean", true, Metadata.empty)
structType.add("some_new_date_col", "date", true, Metadata.empty)
और या तो स्कैला और/या स्पार्क मेरे "string"
तर्क को StringType
इत्यादि में परिवर्तित कर देगा। इसलिए मैं पूछता हूं: मेरी कनवर्टर विधि को लागू करने में मेरी सहायता के लिए स्पार्क या स्कैला के साथ मैं क्या जादू कर सकता हूं?
ऐसा करने के लिए आपके उपयोग के मामले में क्या है:
तो तुम बस के रूप में अपने विधि लागू कर सकते हैं? स्पार्क पहले से ही अंतर्निहित डेटा स्रोतों के लिए स्कीमा और डेटा प्रकारों का अनुमान लगाता है। क्या आप अपना खुद का डेटा स्रोत लागू करना चाहते हैं? –
मैं वास्तव में आपकी समस्या को समझ नहीं पा रहा हूं, क्या आप कृपया सचिन की तरह कहा जा सकता है? आप स्ट्रिंग से अनुमान लगाना चाहते हैं ??? मुझे यह नहीं मिला। –