Pyspark,当Column value以x开头时,写为y



大家好,我正在增加我的DF,不知道你们是否可以伸出援助之手。

df = df.withColumn(('COUNTRY'), when(col("COUNTRY").startsWith("US"), "US").otherwise("null"))

我想要实现的是将列重置为,其中列值以US开头,例如US_Rules_Forever-将数据框简单地重写为US。用null

设置的其他变量
ID     COUNTRY
1      US_RULES
2      US_SANDWICH
3      USA_CLICKING
4      GLOBAL_CHICKEN_SANDWICH
ID     COUNTRY
1      US
2      US
3      US
4      null

根据文档,应该是startswith,而不是startsWithw不能大写

df2 = df.withColumn('COUNTRY', when(col("COUNTRY").startswith("US"), "US"))
df2.show()
+---+-------+
| ID|COUNTRY|
+---+-------+
|  1|     US|
|  2|     US|
|  3|     US|
|  4|   null|
+---+-------+

mck是对的——这是一个语法问题。这篇文章是写给其他开发者的:

df = df.withColumn(('COUNTRY'), when(col("COUNTRY").startswith("US"), "US").otherwise("null"))

相关内容

最新更新