Python Spark DataFrame:用 SparseVector 替换 null

2024-05-08

在 Spark 中,我有以下名为“df”的数据框,其中包含一些空条目:

+-------+--------------------+--------------------+                     
|     id|           features1|           features2|
+-------+--------------------+--------------------+
|    185|(5,[0,1,4],[0.1,0...|                null|
|    220|(5,[0,2,3],[0.1,0...|(10,[1,2,6],[0.1,...|
|    225|                null|(10,[1,3,5],[0.1,...|
+-------+--------------------+--------------------+

df.features1 和 df.features2 是类型向量(可为空)。然后我尝试使用以下代码用 SparseVectors 填充空条目:

df1 = df.na.fill({"features1":SparseVector(5,{}), "features2":SparseVector(10, {})})

此代码导致以下错误:

AttributeError: 'SparseVector' object has no attribute '_get_object_id'

然后我在 Spark 文档中找到了以下段落:

fillna(value, subset=None)
Replace null values, alias for na.fill(). DataFrame.fillna() and DataFrameNaFunctions.fill() are aliases of each other.

Parameters: 
value – int, long, float, string, or dict. Value to replace null values with. If the value is a dict, then subset is ignored and value must be a mapping from column name (string) to replacement value. The replacement value must be an int, long, float, or string.

这是否可以解释我未能在 DataFrame 中用稀疏向量替换空条目?或者这是否意味着在 DataFrame 中无法做到这一点?

我可以通过将 DataFrame 转换为 RDD 并用 SparseVectors 替换 None 值来实现我的目标,但对我来说直接在 DataFrame 中执行此操作会更方便。

有什么方法可以直接在 DataFrame 中执行此操作吗? 谢谢!


您可以使用udf:

from pyspark.sql.functions import udf, lit
from pyspark.ml.linalg import *

fill_with_vector = udf(
    lambda x, i: x if x is not None else SparseVector(i, {}),
    VectorUDT()
)

df = sc.parallelize([
    (SparseVector(5, {1: 1.0}), SparseVector(10, {1: -1.0})), (None, None)
]).toDF(["features1", "features2"])

(df
    .withColumn("features1", fill_with_vector("features1", lit(5)))
    .withColumn("features2", fill_with_vector("features2", lit(10)))
    .show())

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

Python Spark DataFrame:用 SparseVector 替换 null 的相关文章

  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • Python Pandas 根据另一列的总计从另一个数据帧中选择值

    我下面有一个 DataFrame 但我需要根据取消和订单列从每个代码中选择行 假设代码 xxx 的阶数为 6 1 5 1 阶数为 11 我需要一种算法 可以选择满足总共 11 行的行 阶数为 6 5 如果没有行匹配 则选择最接近的 id 并
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 使用 PySpark 从 azure blob 存储读取 csv 文件

    我正在尝试使用 Microsoft Azure 上的 PySpark HDInsight 集群来做一个机器学习项目 要在我的集群上进行操作 请使用 Jupyter 笔记本 另外 我的数据 一个 csv 文件 存储在 Azure Blob 存
  • Pandas style.bar 颜色基于条件?

    如何渲染其中一列的 Pandas dfstyle bar color属性是根据某些条件计算的 Example df style bar subset before after color ff781c vmin 0 0 vmax 1 0 而
  • 由于 json 字符串化 dict 键导致数据丢失

    考虑下面的例子 gt gt gt import json gt gt gt d 0 potato 0 spud gt gt gt json dumps d 0 potato 0 spud gt gt gt json loads json d
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010
  • 缓存 Flask-登录 user_loader

    我有这个 login manager user loader def load user id None return User query get id 在我引入 Flask Principal 之前它运行得很好 identity loa

随机推荐

  • XCode5无法在iOS模拟器上安装应用程序

    我多次成功安装该应用程序 突然 我收到一条消息 我的应用程序 意外退出 失去连接 iOS 6 x 和 7 会发生这种情况 我已经尝试从模拟器中手动删除应用程序 重置 清理 退出 重新启动 一切 有什么建议吗 在 iOS 模拟器菜单中 执行
  • Spring Boot CSRF

    尝试在最新的Spring Boot上实现CSRF保护 互联网上的所有示例都是基于用户登录和身份验证 我不需要 我的网站没有任何需要身份验证的部分 我想 1 休息请求来自站点内部 不允许来自外部的 wget 直接请求 2 所有页面 路由 必须
  • 链接悬停时的淡入淡出效果?

    在许多网站上 例如http www clearleft com http www clearleft com 您会注意到 当将鼠标悬停在链接上时 它们会淡入不同的颜色 而不是立即切换 默认操作 我假设 JavaScript 是用来创建这种效
  • Express.js在控制器中获取http方法

    我正在构建一个注册表单 本地护照作为身份验证 表单作为表单助手 因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理 换句话说 我正在寻找类似的东西 exports register function req res if r
  • 从 Air Native 扩展返回结构

    是否可以从本机代码返回结构 返回 int 或 boolean 相对简单 但是如何将更复杂的结构返回给动作脚本 您可以返回任何可以在本机代码中表示为 FREObject 的对象 这实际上包括任何 Actionscript 类或 Actions
  • viewDidLoad 中的帧大小错误[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我必须在 viewDidLoad 中手动设置视图的框架 https stackoverflow com questions 6757018 why am i having to manually
  • Angular-ui State - 多个视图看不到我的解析数据

    由于某种原因 当使用多个命名视图 angular ui ui router 时 控制器看不到我的resolvedData 有人遇到过这个问题吗 stateProvider state page abstract true templateU
  • Windows 批处理文件:如何启用命令的内联回显

    如果在 Windows 批处理文件中默认禁用 echo 是否有办法为特定命令 内联 启用它 我知道可以回显特定命令disabled通过在命令前添加 但是有没有办法做相反的事情呢 例如 假设有一个像这样的批处理文件 echo off cmd1
  • UITableView 顶部出现间隙[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不确定现在问这个问题是否合适 我正在表视图上使用 Xcode 5 预览版 现在的问题是我的表格视图是否被选择为group比我在第一个单元
  • 由于触摸事件上的类切换/高度变化而导致可点击区域错位

    如果您切换上方元素的高度 则触摸设备上的链接可点击区域会出现奇怪的行为 如果您运行以下代码片段 例如 将其保存在本地并使用 chrome 来模拟触摸事件 您会注意到哈希值 mylink在某些情况下 您没有点击红色链接区域 会将 url 添加
  • Android NullPointerException 在视图或适配器中或

    我不知道还能去哪里看 我对这个错误感到疯狂 它不是来自使用空变量 它似乎只是重新启动应用程序而不更改任何代码 有谁知道 java lang NullPointerException Attempt to invoke virtual met
  • 如何在Java中查找年月日中两个日期之间的差异? [复制]

    这个问题在这里已经有答案了 假设我有 Employee模型有开始日期作为其属性变量和晋升型号有促销日期 我想知道员工在晋升之前已经工作了多长时间 我必须找到 PromotionDate 和 startDate 之间的差异 如果我得到 sta
  • HTML 表单:POST 对象数组

    提交班级名单 一次添加3名学生 每个学生都有最初 最后的年龄 问题 我们如何才能将所有学生放入数组中 students 0 gt Array first gt first name for 0 last gt last name for 0
  • C# Winform(实体框架)- 将数据绑定 DataGridView 或 BindingSource 转换为 DataTable

    我正在使用 C Winforms 和实体框架 我的项目基于此链接建模 与 WinForms 的数据绑定 https msdn microsoft com en us data jj682076 aspx 我的问题是如何转换DataGridV
  • 为什么Mysql的Group By和Oracle的Group by行为不同

    为什么Mysql的Group By和Oracle的Group by行为不同 我多次发现 Mysql group By 功能和 Oracle 的 GroupBy 功能表现不同 很多时候我在Oracle中发现错误 这实际上是错误的查询 但是My
  • Magento 2 REST API 客户自定义属性

    Magento 2 REST API 文档解释了在更新或创建客户时设置custom attributes 的方法 http devdocs magento com swagger index 20 html http devdocs mag
  • 循环更改多个数据帧

    例如 我有这三个数据集 就我而言 它们更多并且有很多变量 data frame1 lt data frame a c 1 5 3 3 2 b c 3 6 1 5 5 c c 4 4 1 9 2 data frame2 lt data fra
  • 如何将每个句子的第一个字母大写?

    我正在尝试编写一个程序 将每个句子的第一个字母大写 这是我到目前为止所拥有的 但我不知道如何在句子之间添加句号 例如 如果我输入 你好 再见 输出是 你好再见 并且期间已经消失 string input Enter a sentence s
  • 如何创建自定义 Powershell 运算符?

    是否可以在 Powershell 中创建自定义运算符 而且 我该怎么做呢 我搜索过谷歌 但没有任何结果 我特指一个中缀运算符 示例列表 包含 元素 我已经创建了 cmdlet 使用 Powershell 和 C 模块等 所以我只需要大概的内
  • Python Spark DataFrame:用 SparseVector 替换 null

    在 Spark 中 我有以下名为 df 的数据框 其中包含一些空条目 id features1 features2 185 5 0 1 4 0 1 0 null 220 5 0 2 3 0 1 0 10 1 2 6 0 1 225 null