首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建具有任意数量的子句的PySpark .when()语句

创建具有任意数量的子句的PySpark .when()语句
EN

Stack Overflow用户
提问于 2020-11-06 20:42:22
回答 1查看 57关注 0票数 1

我是PySpark的新手,我正在尝试创建一个通用的.when()函数,它可以接受任意数量的when-子句,而不必在函数中列出它们。

我们希望从某种数据结构中驱动它,因此可以概括形式的一个函数:

代码语言:javascript
运行
复制
(
    df.when(
        df.value == 1, 'one'
    ).when(
        df.value == 2, 'two'
    ).when(
        df.N == N, 'N'
    )
)

变成类似这样的东西:

代码语言:javascript
运行
复制
(
    df.when(
       **when_clauses
    )
)

我怀疑我将不得不使用**kwargs来允许这种行为的发生,但我不确定Spark是否已经支持这种行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 20:49:43

您可能正在寻找df.replace。它会就地替换,所以如果您想保留原始列,可以使用df.withColumn('value2', 'value')复制它。

代码语言:javascript
运行
复制
mapping = {1: 'one', 2: 'two', ...}

df.replace(mapping)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64714897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档