根据其他列向pyspark数据框添加新列

时间:2020-04-09 14:23:09

标签: pyspark databricks

我想使用WHEN将新列添加到基于另一列的数据框中。我有以下代码:

from pyspark.sql.functions import col, expr, when
df2=df.withColumn("test1",when(col("Country")=="DE","EUR").when(col("Country")=="PL","PLN").otherweise("Unknown"))

但是我得到了错误: 'Column' object is not callable 如何解决该问题?

1 个答案:

答案 0 :(得分:1)

您的对帐单中有错字

  • otherweise更改为 otherwise

df=spark.createDataFrame([("DE",),("PL",),("PO",)],["Country"])
df.withColumn("test1",when(col("country") == "DE", "EUR").when(col("country") == "PL", "PLN").otherwise("Unknown")).show()
#+-------+-------+
#|Country|  test1|
#+-------+-------+
#|     DE|    EUR|
#|     PL|    PLN|
#|     PO|Unknown|
#+-------+-------+