首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >火花最大函数显示不同的结果

火花最大函数显示不同的结果
EN

Stack Overflow用户
提问于 2022-05-20 09:00:46
回答 1查看 53关注 0票数 1

我只是在研究一些电火花代码,却不理解这些特殊的代码。我有一个python代码,如下所示:

代码语言:javascript
运行
复制
emp = [("James", "Java", "4"),
("James", "R", "4"),
("James", "Python", "1"),
("Michael", "Java", "2"),
("Michael", "PHP", "4"),
("Michael", "PHP", "2"),
("Robert", "C#", "3"),
("Robert", "Java", "4"),
("Robert", "R", "1"),
("Washington", "Java", "2")
       ]
empColumns = ["name", "booksInterested", "id"]
empDF = spark.createDataFrame(data=emp, schema=empColumns)
empDF.show()
w = Window.partitionBy('id')
empDF = empDF.withColumn('e_array', F.collect_list('booksInterested').over(w))
empDF.show(truncate=False)
empDF = empDF.agg(F.max('e_array').alias('new_array'))
empDF.show(truncate=False)

当显示empDF之后

代码语言:javascript
运行
复制
empDF = empDF.agg(F.max('e_array').alias('new_array'))

它不是应该显示最长的名单吗?它显示Python,R作为输出?我不明白这个输出是怎么来的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-20 09:10:46

派斯克的max函数返回

组中表达式的最大值。

在字符串列上使用时(数组列内部转换为字符串),它将根据字母顺序返回最大值:因此,由于e_array中的所有行都以方括号[开头,因此该列的最大值将是以字母顺序开头的最大值,在本例中为P of Python

为了检索列中最长的数组,需要使用Pyspark的size函数,然后根据其值进行筛选:

代码语言:javascript
运行
复制
# calculate size column
empDF = empDF.withColumn('size', F.size('e_array'))
# compute maximum size
max_size = empDF.agg(F.max('size')).collect()[0][0]
print(max_size)
# 4

# show rows with longest arrays
empDF.filter(F.col('size') == max_size).show(truncate=False)

+-------+---------------+---+--------------------+----+
|name   |booksInterested|id |e_array             |size|
+-------+---------------+---+--------------------+----+
|James  |Java           |4  |[Java, R, PHP, Java]|4   |
|James  |R              |4  |[Java, R, PHP, Java]|4   |
|Michael|PHP            |4  |[Java, R, PHP, Java]|4   |
|Robert |Java           |4  |[Java, R, PHP, Java]|4   |
+-------+---------------+---+--------------------+----+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72316218

复制
相关文章

相似问题

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