首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这种类型的PySpark isin映射不能工作

为什么这种类型的PySpark isin映射不能工作
EN

Stack Overflow用户
提问于 2021-09-13 05:56:18
回答 1查看 53关注 0票数 0

这是我的密码

代码语言:javascript
复制
listOTHERS_hpos = ['BLACKBERRY 7', 'SYMBIAN', 'NOKIA OS', 'BLACKBERRY 10', 'WINDOWS']
lastvalue_month = lastvalue_month.withColumn('handset_type', 
                        when(col('handset_os').isin(listOTHERS_hpos) , lit('OTHERS')))
lastvalue_month.groupBy('handset_os').count().orderBy('count').show()

这是输出

代码语言:javascript
复制
+-------------+-----+
|   handset_os|count|
+-------------+-----+
|      WINDOWS|    6|
|BLACKBERRY 10|    8|
|     NOKIA OS|   15|
|      SYMBIAN|   39|
| BLACKBERRY 7|   43|
|    UNDEFINED| 1218|
|    APPLE IOS| 1496|
|        OTHER| 3705|
|      ANDROID|13218|
+-------------+-----+

按照代码,它应该是

代码语言:javascript
复制
+-------------+-----+
|   handset_os|count|
+-------------+-----+
|       OTHERS|  111|
|    UNDEFINED| 1218|
|    APPLE IOS| 1496|
|        OTHER| 3705|
|      ANDROID|13218|
+-------------+-----+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-13 08:24:21

应使用正确的列对列进行分组。此外,在.otherwise()中使用when是有帮助的。

代码语言:javascript
复制
lastvalue_month = lastvalue_month.withColumn('handset_type', 
                        when(col('handset_os').isin(listOTHERS_hpos) , lit('OTHERS')).otherwise(col('handset_type')))
lastvalue_month.groupBy('handset_type').count().orderBy('count').show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69157909

复制
相关文章

相似问题

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