【发布时间】:2021-03-03 00:43:28
【问题描述】:
我有一些数据,我正在采取这样的最大值:
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')
)
得到了同样的错误。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql