我有一些数据,我最大化了如下:
t = (
spark.table('schema.t1')
.where(F.col('yyyy_mm_dd').between('2020-01-01', '2021-01-01'))
.select('id', 'is_enabled')
.groupby('id')
.agg(
sf.max('is_enabled').alias('is_enabled')
)
)
中的数据 is_enabled
是1/0,我想分别用'true'和'false'替换它。
我试过这个:
t = (
spark.table('schema.t1')
.where(F.col('yyyy_mm_dd').between('2020-01-01', '2021-01-01'))
.select('id', 'is_enabled')
.groupby('id')
.agg(
sf.max('is_enabled').alias('is_enabled')
)
.when(sf.col('is_enabled') == 0, 'false')
.otherwise('true')
)
但我有个错误:
attributeerror:“dataframe”对象没有“when”属性
我也尝试过:
t = (
spark.table('schema.t1')
.where(F.col('yyyy_mm_dd').between('2020-01-01', '2021-01-01'))
.select('id', 'is_enabled')
.groupby('id')
.agg(
sf.max('is_enabled').alias('is_enabled')
)
)
t = (
t
.when(sf.col('is_enabled') == 0, 'false')
.otherwise('true')
)
也犯了同样的错误。
1条答案
按热度按时间ycggw6v21#
你可以用
withColumn
更改列,并将when
内部声明withColumn
:或者你可以把
when
内部声明agg
: