मैं कॉलम की लंबाई से संबंधित स्थिति का उपयोग करके DataFrame
फ़िल्टर करना चाहता हूं, यह प्रश्न बहुत आसान हो सकता है लेकिन मुझे SO में कोई संबंधित प्रश्न नहीं मिला।कॉलम की लंबाई का उपयोग कर डेटाफ्रेम फ़िल्टर करना
अधिक विशिष्ट, मैं केवल एक Column
के साथ एक DataFrame
जो ArrayType(StringType())
की, मैं filterer के रूप में लंबाई का उपयोग कर DataFrame
फ़िल्टर करना चाहते हैं, मैं एक टुकड़ा नीचे गोली मार दी है।
df = sqlContext.read.parquet("letters.parquet")
df.show()
# The output will be
# +------------+
# | tokens|
# +------------+
# |[L, S, Y, S]|
# |[L, V, I, S]|
# |[I, A, N, A]|
# |[I, L, S, A]|
# |[E, N, N, Y]|
# |[E, I, M, A]|
# |[O, A, N, A]|
# | [S, U, S]|
# +------------+
# But I want only the entries with length 3 or less
fdf = df.filter(len(df.tokens) <= 3)
fdf.show() # But it says that the TypeError: object of type 'Column' has no len(), so the previous statement is obviously incorrect.
मैंने Column's Documentation पढ़ा, लेकिन इस मामले के लिए कोई भी संपत्ति उपयोगी नहीं मिली। मैं किसी भी मदद की सराहना करता हूं!
क्या होगा यदि स्तंभ एक 'स्ट्रिंग' है और मैं' स्ट्रिंग' की दूरी के आधार पर फ़िल्टर करने के लिए बहाना के बारे में? –
वही udf या 'लंबाई' फ़ंक्शन। – zero323