select()中when()的正确用法

8wigbo56  于 2021-07-12  发布在  Spark
关注(0)|答案(1)|浏览(380)

我想用 .when() . 我试过这样做:

x = (
    spark.table('my_table')
    .select(
        'date'
        'id',
        .when(sf.col('name') == 'x', 'One'),
        .when(sf.col('name') == 'y', 'Two'),
        .when(sf.col('name') == 'z', 'Three'),
)

不过,我的语法似乎错了。我知道,在sql中,我也可以做到这一点:

select
    date, id
    case
         when name = 'x' then 'One',
         when name = 'y' then 'Two',
         when name = 'z' then 'Three'
    end as name
from
    my_table
piok6c0g

piok6c0g1#

第一个 when 应该是 sf.when ,另一个呢 when s应该连接到第一个 when :

x = (
    spark.table('my_table')
    .select(
        'date'
        'id',
        sf.when(sf.col('name') == 'x', 'One')
        .when(sf.col('name') == 'y', 'Two')
        .when(sf.col('name') == 'z', 'Three')
        .alias('name')
    )
)

相关问题