在Spark Dataframe中,可以使用withColumn()
方法来动态更改列数据类型。根据数据类型的不同,需要使用不同的转换函数。
df = df.withColumn("new_column", df["old_column"].cast(IntegerType()))
这里的cast()
函数将原有的字符串类型转换为整数类型,可以根据需要进行类型转换,例如将字符串转换为浮点数类型(FloatType)、日期类型(DateType)等。
df = df.withColumn("new_column", df["old_column"].cast(BooleanType()))
通过cast()
函数将数值类型转换为布尔类型(BooleanType)等。
df = df.withColumn("new_column", df["old_column"].cast(StringType()))
可以将日期类型转换为字符串类型(StringType)等。
df = df.withColumn("new_column", df["old_column"].cast(IntegerType()))
将布尔类型转换为整数类型(IntegerType)等。
df = df.withColumn("new_column", df["old_column"].cast(StringType()))
可以将数组类型转换为字符串类型(StringType)等。
df = df.withColumn("new_column", df["old_column"].cast(StringType()))
将结构体类型转换为字符串类型(StringType)等。
在以上示例中,需要将new_column
替换为新列的名称,old_column
替换为要转换的原始列的名称。如果需要在原始Dataframe上进行更改,可以使用df = df.withColumn()
来覆盖原有的Dataframe。
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云