我有一个数据框架df,我想在那里将一些列转换为类别类型。使用pandas我可以像下面这样做:
for col in categorical_collist:
df[col] = df[col].astype('category')
我想在pyspark中进行列转换。我该怎么做?
我在pyspark中使用了下面的代码。但是它在操作过程中没有给出我的预期输出。
from pyspark.sql.types import StringType
for col in categorical_collist:
df = df.withColumn(col, df[col].cast(StringType()))
1条答案
按热度按时间kxxlusnw1#
在PySpark中,可以使用DataFrame的withColumn()方法将列转换为分类类型。
我们首先从pyspark.sql.functions导入col()函数,它用于通过名称引用列。
然后,我们循环categorical_collist中的列名列表,对于每一列,我们使用withColumn()方法创建一个同名的新列,但先转换为字符串,然后转换为分类类型。
注意,在PySpark中,在转换为分类类型之前,需要先转换为字符串,因为cast()方法需要字符串作为输入。