计算 PySpark DataFrame 列的众数?

2023-11-27

最终我想要的是 DataFrame 中所有列的列模式。对于其他汇总统计信息,我看到了几个选项:使用 DataFrame 聚合,或将 DataFrame 的列映射到向量的 RDD(我也遇到了麻烦)并使用colStats来自 MLlib。但我不认为模式是一个选项。


众数问题与中位数问题几乎相同。虽然计算很容易,但计算成本相当高。可以使用排序后进行本地和全局聚合,也可以使用另一个单词计数和过滤器来完成:

import numpy as np
np.random.seed(1)

df = sc.parallelize([
    (int(x), ) for x in np.random.randint(50, size=10000)
]).toDF(["x"])

cnts = df.groupBy("x").count()
mode = cnts.join(
    cnts.agg(max("count").alias("max_")), col("count") == col("max_")
).limit(1).select("x")
mode.first()[0]
## 0

无论哪种方式,都可能需要对每一列进行完全洗牌。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算 PySpark DataFrame 列的众数? 的相关文章

随机推荐

  • 在Windows窗体上显示pdf?

    在vb net中是否可以在表单上显示pdf文件 如果您希望在客户端计算机上不安装 Acrobat Reader 的情况下显示 PDF 请查看以下内容 未安装 Acrobat Reader 的 PDF 查看器控件 我还没有尝试过 但可能会尝试
  • 命名元组的 Python 语法

    我看到命名元组的 Python 语法是 Point namedtuple Point x y 为什么不像这样更简单 Point namedtuple x y 它不太冗长 一般来说 对象不知道它们被分配给什么变量 Create three v
  • 如何在c#中连接access数据库[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个包含 7 个表的访问数据库文件 但我不知道如何连接并显示所有表 如果有人可以帮助
  • 如何检索.Net WinForms图表控件中选定的范围?

    我正在使用 C 内置 Winforms 图表控件 System Windows Forms DataVisualization Charting Chart 具有让用户选择范围的内置功能 我想做的是读回用户选择的范围 当然一定有一些简单的方
  • 将多维数组转换为 XML

    在您评论这可能是重复的之前 请先阅读下面的粗体行 这与 SimpleXML 无关 让我首先展示应如何布置 XML 请忽略命名空间
  • 在 PHP 中按子数组的值对数组进行排序

    我有一个由数组组成的数组 我想根据子数组的属性对父数组进行排序 这是一个例子 array 2 0 gt array 3 0 gt string 6 105945 1 gt string 10 First name 2 gt float 0
  • innerHTML:如何避免

    我正在编写一个插件 它将表情符号转换为特定网站文本块中的图像 简单的答案是使用正则表达式来检测innerHTML上的触发文本并插入img标签 然后将字符串通过管道传回中的dom元素内部HTML部分 DOM 元素块可能已经有锚点 a 和 或文
  • 如何在 VC++ 项目中关闭 Unicode?

    我在 Visual Studio 2008 中有一个 VC 项目 它在编译器命令行上定义 unicode 的符号 D UNICODE D UNICODE 即使我没有在项目的预处理器部分中打开此符号 因此 我针对所有 Win32 库函数的 U
  • ZeroMQ - 多个发布者和监听器

    我刚刚开始了解并尝试 ZeroMQ 我不清楚如何在两个以上的参与者 发布者和订阅者 之间进行双向通信 以便每个组件都能够在 MQ 上读取和写入 这将允许创建事件驱动的架构 因为每个组件都可以侦听一个事件并回复另一个事件 有没有办法直接使用
  • 如何在 WPF 中从 C# 获取超链接文本?

    我有一个WPFHyperlink我正在尝试从中获取文本内容 例如
  • 如何将 gitlab 备份迁移到具有最新 gitlab 版本的新服务器

    我正在尝试将旧服务器的 gitlab 备份迁移到新服务器 我的旧服务器有 gitlab gitlab 6 5 1 0 我的新服务器有 gitlab 版本 gitlab 6 6 5 omnibus 我使用以下命令从旧服务器进行备份 bundl
  • 从嵌套 for 循环继续 while

    我有以下循环结构 while reader Read eq true row for i 0 i lt reader FieldCount i if something continue with while do more stuff 现
  • 如何在 SSIS 中为 Excel 文件设置动态文件路径?

    文件名随月份而变化 每个月您都会有一个新文件 I Test Data 201303 xlsx 如何设置可使用可变文件路径的连接管理器 在连接管理器上查找 表达式 属性 这就是您将其设置为 USER VariableName 的地方 更详细
  • 解析中缀表示法的表达式的算法是什么?

    我想在 PHP 中解析布尔表达式 如 A and B or C and D or F or not G 这些术语可以被视为简单的标识符 它们会有一些结构 但解析器不需要担心这一点 它应该只识别关键字and or not 其他一切都是一个术语
  • 如何用二进制字段进行选择? (php、mysql)

    尝试在 mysql 语句中选择使用 where 子句 例如 表 X 具有 BINARY 数据类型的 ID 列 然后保存到php的变量中 aid row id 稍后当我尝试从表中选择时如何使用此变量 where where ID aid qu
  • 什么用户正在运行我的 Rails 应用程序?

    我正在尝试在 Apache Passenger 3 0 0 和 Rails 3 0 3 下部署一个简单的 Rails 应用程序 我收到各种奇怪的错误 主要围绕我认为与捆绑器或 RAILS ENV 相关的内容 该应用程序唯一的非默认情况是开发
  • 用 jQuery 中的新行替换结果集中的逗号

    我过去从未做过这样的事情 我想知道这是否确实可能 我允许在 an 中添加多个代码 只要它们以逗号分隔即可 我想要做的是 当用户单击 确定 按钮时 显示输入的数字将显示它们一个一个在彼此之上 旁边有一个 删除 按钮 这部分很容易 困难的部分是
  • 在 Google Play 上向有限数量的用户发布

    我想将我的应用程序发布给有限的一组用户 不特定于国家 地区和运营商 我在网上搜索发现this 然而 这导致了混乱 文件一开始就说我们可以创建一个私人渠道来在整个组织中分发应用程序 Google Apps for Business Educa
  • 在注释该线程的 pthread_join 时多次执行同一线程子例程[重复]

    这个问题在这里已经有答案了 我是线程新手 在这里 如果我评论 pthread join thread1 NULL 那么在输出中有时我会得到 Thread2 Thread1 Thread1 我无法理解为什么 Thread1 跟踪会出现两次以及
  • 计算 PySpark DataFrame 列的众数?

    最终我想要的是 DataFrame 中所有列的列模式 对于其他汇总统计信息 我看到了几个选项 使用 DataFrame 聚合 或将 DataFrame 的列映射到向量的 RDD 我也遇到了麻烦 并使用colStats来自 MLlib 但我不