栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spark Dataframe嵌套的when语句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spark Dataframe嵌套的when语句

这里没有嵌套,因此不需要

otherwise
。您所需的全部都是链式的
when

import spark.implicits._when($"tc" isin ("a", "b"), "Y")  .when($"tc" === "a" && $"amt" >= 0, "N")

ELSE NULL
是隐式的,因此您可以完全省略它。

您使用的模式更适用于

folding
数据结构:

val cases = Seq(  ($"tc" isin ("a", "b"), "Y"),  ($"tc" === "a" && $"amt" >= 0, "N"))

其中

when
-
otherwise
自然遵循递归模式并
null
提供基本情况。

cases.foldLeft(lit(null)) {  case (acc, (expr, value)) => when(expr, value).otherwise(acc)}

请注意,在这种情况下,不可能达到“ N”个结果。如果

tc
等于“
a”,它将被第一个子句捕获。如果不是,它将无法同时满足两个谓词,并且默认为
NULL
。您应该宁愿:

when($"tc" === "a" && $"amt" >= 0, "N") .when($"tc" isin ("a", "b"), "Y")


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号