আপনি DataFrame
স্পার্কে একটি স্বেচ্ছাসেবী কলাম যুক্ত করতে পারবেন না । নতুন কলামগুলি কেবল আক্ষরিক ব্যবহারের মাধ্যমে তৈরি করা যেতে পারে ( স্পার্ক ডেটাফ্রেমে ধ্রুবক কলাম কীভাবে যুক্ত করা যায় তাতে অন্যান্য আক্ষরিক ধরণের বিবরণ দেওয়া আছে? )
from pyspark.sql.functions import lit
df = sqlContext.createDataFrame(
[(1, "a", 23.0), (3, "B", -23.0)], ("x1", "x2", "x3"))
df_with_x4 = df.withColumn("x4", lit(0))
df_with_x4.show()
## +---+---+-----+---+
## | x1| x2| x3| x4|
## +---+---+-----+---+
## | 1| a| 23.0| 0|
## | 3| B|-23.0| 0|
## +---+---+-----+---+
একটি বিদ্যমান কলাম রূপান্তর করা:
from pyspark.sql.functions import exp
df_with_x5 = df_with_x4.withColumn("x5", exp("x3"))
df_with_x5.show()
## +---+---+-----+---+--------------------+
## | x1| x2| x3| x4| x5|
## +---+---+-----+---+--------------------+
## | 1| a| 23.0| 0| 9.744803446248903E9|
## | 3| B|-23.0| 0|1.026187963170189...|
## +---+---+-----+---+--------------------+
ব্যবহার করে অন্তর্ভুক্ত join
:
from pyspark.sql.functions import exp
lookup = sqlContext.createDataFrame([(1, "foo"), (2, "bar")], ("k", "v"))
df_with_x6 = (df_with_x5
.join(lookup, col("x1") == col("k"), "leftouter")
.drop("k")
.withColumnRenamed("v", "x6"))
## +---+---+-----+---+--------------------+----+
## | x1| x2| x3| x4| x5| x6|
## +---+---+-----+---+--------------------+----+
## | 1| a| 23.0| 0| 9.744803446248903E9| foo|
## | 3| B|-23.0| 0|1.026187963170189...|null|
## +---+---+-----+---+--------------------+----+
বা ফাংশন / ইউডিএফ দিয়ে উত্পন্ন:
from pyspark.sql.functions import rand
df_with_x7 = df_with_x6.withColumn("x7", rand())
df_with_x7.show()
## +---+---+-----+---+--------------------+----+-------------------+
## | x1| x2| x3| x4| x5| x6| x7|
## +---+---+-----+---+--------------------+----+-------------------+
## | 1| a| 23.0| 0| 9.744803446248903E9| foo|0.41930610446846617|
## | 3| B|-23.0| 0|1.026187963170189...|null|0.37801881545497873|
## +---+---+-----+---+--------------------+----+-------------------+
পারফরম্যান্স-ভিত্তিক, অন্তর্নির্মিত ফাংশন ( pyspark.sql.functions
), যা অনুঘটক অভিব্যক্তিতে মানচিত্র করে সাধারণত পাইথন ব্যবহারকারী সংজ্ঞায়িত ফাংশনগুলির চেয়ে বেশি পছন্দ করা হয়।
আপনি যদি কোনও কলাম হিসাবে একটি স্বেচ্ছাসেবী আরডিডি এর সামগ্রী যুক্ত করতে চান তবে পারেন
- বিদ্যমান ডাটা ফ্রেমে সারি সংখ্যা যুক্ত করুন
zipWithIndex
আরডিডি-তে কল করুন এবং এটিকে ডেটা ফ্রেমে রূপান্তর করুন
- যোগদানের কী হিসাবে সূচকটি ব্যবহার করে উভয়ই যোগ দিন