当条件不起作用时使用多个 Pyspark

发布于 2025-01-10 21:46:21 字数 456 浏览 1 评论 0原文

我的数据集看起来像这样

原始数据

我编写了以下代码:

flightData2015.select("*",when(flightData2015['count']>200,'above200')
                  .when(flightData2015['count']>400,'above400').otherwise("below").alias("new count")).show()

输出: 红线不符合我的逻辑,我想知道为什么第二个“when”条件不起作用

my data set looks like this

raw data

I wrote this code:

flightData2015.select("*",when(flightData2015['count']>200,'above200')
                  .when(flightData2015['count']>400,'above400').otherwise("below").alias("new count")).show()

output :
red line does not follow my logic, I want to know why the second "when" condition is not working

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花之痕靓丽 2025-01-17 21:46:21

首先,条件“>200”也将满足大于400的项目,因此这就是不使用第二个when的原因。

其次,嵌套的when else 子句应该有效。

when(flightData2015['count']>400,'above400').otherwise(when(flightData2015['count']>200,'above200').otherwise("below"))

Firstly, the condition ">200" will satisfy items that are greater than 400 also, so that is why the second when is not used.

Secondly, a nested when otherwise clause should work.

when(flightData2015['count']>400,'above400').otherwise(when(flightData2015['count']>200,'above200').otherwise("below"))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文