এখানে কোনও ইউডিএফের দরকার নেই। Column
ইতিমধ্যে উদাহরণ সহ cast
পদ্ধতি সরবরাহ করে :DataType
from pyspark.sql.types import DoubleType
changedTypedf = joindf.withColumn("label", joindf["show"].cast(DoubleType()))
বা সংক্ষিপ্ত স্ট্রিং:
changedTypedf = joindf.withColumn("label", joindf["show"].cast("double"))
যেখানে ক্যানোনিকাল স্ট্রিংয়ের নাম (অন্যান্য রূপগুলিও সমর্থন করা যায়) simpleString
মানের সাথে মিলিত হয়। সুতরাং পারমাণবিক ধরণের জন্য:
from pyspark.sql import types
for t in ['BinaryType', 'BooleanType', 'ByteType', 'DateType',
'DecimalType', 'DoubleType', 'FloatType', 'IntegerType',
'LongType', 'ShortType', 'StringType', 'TimestampType']:
print(f"{t}: {getattr(types, t)().simpleString()}")
BinaryType: binary
BooleanType: boolean
ByteType: tinyint
DateType: date
DecimalType: decimal(10,0)
DoubleType: double
FloatType: float
IntegerType: int
LongType: bigint
ShortType: smallint
StringType: string
TimestampType: timestamp
এবং উদাহরণস্বরূপ জটিল ধরণের
types.ArrayType(types.IntegerType()).simpleString()
'array<int>'
types.MapType(types.StringType(), types.IntegerType()).simpleString()
'map<string,int>'
col
ফাংশন ব্যবহার করেও কাজ করে।from pyspark.sql.functions import col
,changedTypedf = joindf.withColumn("label", col("show").cast(DoubleType()))