Pyspark 数据框:根据其他列值创建列
Pyspark dataframe: creating column based on other column values
我有一个 pyspark 数据框:
现在,我想添加一个名为“countryAndState”的新列,例如,其中第一行的值为“USA_CA”。我尝试了几种方法,最后一种是:
df_2 = df.withColumn("countryAndState", '{}_{}'.format(df.country, df.state))
我尝试过使用 "country"
和 "state"
,或者只是使用 country
和 state
,也尝试过使用 col()
,但似乎没有任何效果.谁能帮我解决这个问题?
您不能在 Spark 中使用 Python 格式字符串。使用 concat
代替:
import pyspark.sql.functions as F
df_2 = df.withColumn("countryAndState", F.concat(F.col('country'), F.lit('_'), F.col('state')))
或 concat_ws
,如果您需要使用给定的分隔符将许多列链接在一起:
import pyspark.sql.functions as F
df_2 = df.withColumn("countryAndState", F.concat_ws('_', F.col('country'), F.col('state')))
我有一个 pyspark 数据框:
现在,我想添加一个名为“countryAndState”的新列,例如,其中第一行的值为“USA_CA”。我尝试了几种方法,最后一种是:
df_2 = df.withColumn("countryAndState", '{}_{}'.format(df.country, df.state))
我尝试过使用 "country"
和 "state"
,或者只是使用 country
和 state
,也尝试过使用 col()
,但似乎没有任何效果.谁能帮我解决这个问题?
您不能在 Spark 中使用 Python 格式字符串。使用 concat
代替:
import pyspark.sql.functions as F
df_2 = df.withColumn("countryAndState", F.concat(F.col('country'), F.lit('_'), F.col('state')))
或 concat_ws
,如果您需要使用给定的分隔符将许多列链接在一起:
import pyspark.sql.functions as F
df_2 = df.withColumn("countryAndState", F.concat_ws('_', F.col('country'), F.col('state')))