मेरे पास एक PySpark सेटिंग में डेटाफ़्रेम df है। मैं एक कॉलम बदलना चाहता हूं, कहें कि इसे ए कहा जाता है, जिसका डेटाटाइप "string
" है। मैं इसके मूल्यों को उनकी लंबाई के अनुसार बदलना चाहता हूं। विशेष रूप से, यदि एक पंक्ति में हमारे पास केवल एक वर्ण है, तो हम 0 को अंत तक जोड़ना चाहते हैं। अन्यथा, हम डिफ़ॉल्ट मान लेते हैं। "संशोधित" कॉलम का नाम अभी भी ए होना चाहिए। यह एक ज्यूपिटर नोटबुक के लिए है जो PySpark3 का उपयोग कर रहा है।
मैंने अब तक यही कोशिश की है:
df = df.withColumn("A", when(size(df.col("A")) == 1, concat(df.col("A"), lit("0"))).otherwise(df.col("A")))
मैंने उसी कोड को "df.col
" को हटाने का भी प्रयास किया।
जब मैं इस कोड को चलाता हूं, तो सॉफ्टवेयर यह कहते हुए शिकायत करता है कि सिंटैक्स अमान्य है, लेकिन मुझे त्रुटि दिखाई नहीं दे रही है।
1 उत्तर
df.withColumn("temp", when(length(df.A) == 1, concat(df.A, lit("0"))).\
otherwise(df.A)).drop("A").withColumnRenamed('temp', 'A')
आपके प्रश्न को पढ़ने के बाद मुझे जो समझ में आया, वह यह था कि आपको एक अतिरिक्त कॉलम A मिल रहा है।
तो आप चाहते हैं कि पुराने कॉलम ए को नए कॉलम ए से बदल दिया जाए। इसलिए मैंने आपके आवश्यक तर्क के साथ एक अस्थायी कॉलम बनाया, फिर कॉलम ए को हटा दिया और फिर अस्थायी कॉलम को ए में बदल दिया।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।