UDF बनाना: अभ्यास
कभी-कभी आपके डेटा को ऐसे transformation की ज़रूरत होती है जो built-in functions से संभव नहीं है. ऐसे में custom user defined function ("UDF") उपयोगी होता है.
SQL फंक्शन udf उपलब्ध है.
एक dataframe df2 उपलब्ध है, टाइप DataFrame[doc: array<string>, in: array<string>, out: array<string>]. इसकी doc कॉलम में सरल/साधारण tokens हैं.
निम्न कोड df2 की वे पहली 20 पंक्तियाँ दिखाता है जहाँ doc में '1' मौजूद है:
df2.where(array_contains('doc','1')).show()
आपको दो उद्देश्यों को पूरा करना है:
- सुनिश्चित करें कि transformed डेटा nonempty vectors से बना हो.
- एक dataframe की एक कॉलम में string की arrays हैं, जहाँ हर array में केवल एक आइटम है. आप इस कॉलम को string में transform करना चाहते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Spark SQL परिचय
अभ्यास निर्देश
numNonzeros()का उपयोग करते हुए ऐसा udf बनाएँ जो तभी और केवल तभी true लौटाए जब value एक nonempty vector हो.- ऐसा udf बनाएँ जो array का पहला एलिमेंट लौटाए और उसका string रूप दे.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Returns true if the value is a nonempty vector
nonempty_udf = udf(lambda x:
True if (x and hasattr(x, "toArray") and x.____())
else False, ____())
# Returns first element of the array as string
s_udf = udf(lambda x: ____(x[0]) if (x and type(x) is list and len(x) > 0)
else '', ____())