PySpark dataframe我想将行为类型列中的str型数据pv,cart,fav,buy转换成int型1,2,3,4代码该怎么写
时间: 2023-05-23 13:02:37 浏览: 49
可以通过使用 PySpark dataframe 的 withColumn 函数和 when 函数来实现您的需求。代码如下:
```
from pyspark.sql.functions import when
df = df.withColumn("行为类型", when(df["行为类型"] == "pv", 1)
.when(df["行为类型"] == "cart", 2)
.when(df["行为类型"] == "fav", 3)
.when(df["行为类型"] == "buy", 4)
.otherwise(df["行为类型"]))
```
以上代码将行为类型列中的 str 类型的数据 "pv"、"cart"、"fav" 和 "buy" 转换成对应的 int 类型的数据 1、2、3 和 4。
相关问题
pyspark dataframe 将行为类型列中的pv换成1,buy换成2
您可以使用Pyspark中的withColumn函数将"行为类型"列中的"pv"替换为1,将"buy"替换为2。下面是代码示例:
```
df = df.withColumn("行为类型", when(col("行为类型") == "pv", 1).when(col("行为类型") == "buy", 2).otherwise(col("行为类型")))
```
其中,df是您的Pyspark DataFrame,"行为类型"是您想要替换的列名。当"行为类型"为"pv"时,使用when函数将其替换为1。当"行为类型"为"buy"时,使用when函数将其替换为2。如果"行为类型"不是"pv"或"buy",则使用otherwise函数将其保持不变。
pyspark dataframe如何将一列str数据转换成int数据
您可以使用pyspark中的cast()函数将一列str数据转换成int数据。具体的代码示例如下所示:
```
from pyspark.sql.functions import col
df = df.withColumn("columnName", col("columnName").cast("int"))
```
其中,“columnName”是您想要进行类型转换的列名,df代表您的dataframe对象。在这个示例中,我们使用了withColumn()函数和col()函数来选择特定列,并使用cast()函数将该列从str类型转换成int类型。