如何用新列覆盖 Spark 数据框中的整个现有列?

2024-03-07

我想用一个新列覆盖 Spark 列,该新列是二进制标志。

我尝试直接覆盖 id2 列,但为什么它不像 Pandas 中的就地操作那样工作?

如何在不使用 withcolumn() 创建新列和 drop() 删除旧列的情况下做到这一点?

我知道 Spark 数据帧是不可变的,这是原因还是有不同的方法可以在不使用 withcolumn() 和 drop() 的情况下进行覆盖?

    df2 = spark.createDataFrame(
        [(1, 1, float('nan')), (1, 2, float(5)), (1, 3, float('nan')), (1, 4, float('nan')), (1, 5, float(10)), (1, 6, float('nan')), (1, 6, float('nan'))],
        ('session', "timestamp1", "id2"))

    df2.select(df2.id2 > 0).show()

+---------+
|(id2 > 0)|
+---------+
|     true|
|     true|
|     true|
|     true|
|     true|
|     true|
|     true|
+---------+
 # Attempting to overwriting df2.id2
    df2.id2=df2.select(df2.id2 > 0).withColumnRenamed('(id2 > 0)','id2')
    df2.show()
#Overwriting unsucessful
+-------+----------+----+
|session|timestamp1| id2|
+-------+----------+----+
|      1|         1| NaN|
|      1|         2| 5.0|
|      1|         3| NaN|
|      1|         4| NaN|
|      1|         5|10.0|
|      1|         6| NaN|
|      1|         6| NaN|
+-------+----------+----+

您可以使用

d1.withColumnRenamed("colName", "newColName")
d1.withColumn("newColName", $"colName")

The withColumnRenamed将现有列重命名为新名称。

The withColumn使用给定名称创建一个新列。如果已经存在,它会创建一个具有相同名称的新列,并删除旧的列。

在您的情况下,更改不会应用于原始数据框 df2,它会更改列的名称并作为新数据框返回,该数据框应分配给新变量以供进一步使用。

d3 = df2.select((df2.id2 > 0).alias("id2"))

以上应该适合您的情况。

希望这可以帮助!

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

如何用新列覆盖 Spark 数据框中的整个现有列? 的相关文章

随机推荐

  • java.lang.Thread.interrupt() 的作用是什么?

    你能解释一下什么吗java lang Thread interrupt 何时调用 Thread interrupt 设置目标线程的中断状态 标志 然后在该目标线程中运行的代码可以轮询中断状态并适当地处理它 一些阻止的方法 例如Object
  • 为什么 height: 0 不隐藏我的填充

    我有一个 div 带衬垫 我已将其设置为height 0 并给出它overflow hidden and box sizing border box div webkit box sizing border box moz box sizi
  • Do while javascript问题

    我试图在 do while 循环中发送多个帖子 但结果未添加
  • 如何从命令行更新 SSDT 项目?

    我希望能够使用SSDT SQL Server Data Tools 将我们的数据库模式置于版本控制之下 将数据库导入到 Visual Studio 中的 SSDT 项目中会创建数据库架构的良好文本表示形式 适合版本控制 现在的问题是 当对数
  • 在 Java 中格式化时间戳

    我希望以以下格式生成当前时间戳yyyy MM dd HH mm ss 我编写了以下代码 但它总是给我这种格式yyyy MM dd HH mm ss x 你如何摆脱 x part DateFormat df new SimpleDateFor
  • 根据图片名称获取url文件

    大家好 我在 WordPress 的媒体文件夹中有几张图片 当保存新图像时 WordPress 保存为年 月 name png wp content uploads 2011 01 matt png 是否可以按名称查找图像并返回 url 文
  • XCode - 动态创建的标签,当我更改文本时,它仅更改最后一个标签

    所以我有一堆动态加载的标签 他们每个人都有相同的名字 因为不知道会有多少人 我有另一种方法 不是创建标签的方法 更改其中一个标签的文本 但是当我运行它时 只有创建的最后一个标签会更改 我需要它来更改具有特定标签或其他内容的那个 非常感谢帮助
  • 获取列表中每 n 个项目的一大块项目

    假设我有以下列表 l 4 3 1 5 3 5 8 11 10 4 12 2 1 最Pythonic的切片方式是什么l为了获得长度块n离开k块之间的项目 例如 如果n 2 and k 3结果应该是 4 3 5 8 12 2 使用列表理解 e
  • Xamarin.Forms 中的圆形图像

    我需要在 Xamarin Forms 中使用带有圆角的图像控件 但我没有找到任何可以做到的财产 如何制作圆形图像 我用FF图像加载 https github com molinch FFImageLoading图书馆CachedImage对
  • 将动态数组传递给 C 中的函数

    我正在尝试创建一个函数 该函数将数组作为参数 向其添加值 如果需要 增加其大小 并返回项目的计数 到目前为止我有 int main int argc char argv int mSize 10 ent a mSize int n n ad
  • 无法使用 py2exe 以“Domain\ComputerName”pyodbc 身份登录

    好的 我有一个连接到 mssql 数据库的脚本 我需要作为我已经完成的服务运行 但是当我将它作为服务运行时 它会覆盖我在使用以下命令连接到数据库时输入的凭据 广告计算机帐户 当我单独运行它而不是作为服务运行时 它运行得非常完美 我的连接字符
  • PDF 和 MFMailComposeViewController

    编写允许用户生成 pdf 并发送的应用程序部分 似乎工作正常 发送的 PDF 在 MAC 上可以正常打开 但在 iPhone 上它只是不断加载并且永远不会打开 在 Ray Wenderlich 教程的帮助下创建了一个 pdf 文档 并通过带
  • Delphi RTTI:获取属性的类

    使用Delphi 2010和RTTI 我知道如何获取对象的类类型以及如何获取 设置对象属性的值和类型 但是如何确定属性来自继承链中的哪个类 我想以不同于主类的方式使用基类的属性 考虑这段代码 TClassBase class TObject
  • 使用 SQL 对列表排序还是作为集合排序?

    我的数据库中有一些带有日期的条目 什么是最好的 用sql语句获取它们并应用order by 使用 sql 获取列表 并在应用程序中对它们进行排序collection sort or so Thanks 这是一个非常广泛的问题 很难回答 这在
  • Rust 进程使用 GitHub 操作失败,退出代码为 101

    该代码在我的本地计算机上运行良好并且没有给出任何错误 但是当我推送到 GitHub 时 构建失败了 这是我的工作流程文件的块 runs on matrix platform steps name Checkout Repository us
  • Delphi 多索引通用列表

    我正在寻找一种 TList 后代 它可以让我添加一个或多个索引 并让我通过这些索引进行搜索和查看 30分钟的谷歌搜索让我一无所获 以前肯定需要这个 我的意思是 有多少次您有一个内存索引集合 然后需要以不同的顺序显示它 Thanks AJ 你
  • 事件与路由器绑定

    我在用着导航网 https github com krasimir navigo对于一个小网站 用户被要求登录到登陆页面上的帐户 然后在验证其帐户后路由到主模板 页面对象是从 Firebase 数据库填充的 因此我初始化一个类并将多个事件和
  • 是否可以在 Sublime Text 2 中链接键绑定命令?

    有时 我想在 Sublime Text 中显示侧栏中的当前文件 然后在文件夹结构中导航 这可以使用命令来实现reveal in side bar and focus side bar然而 它们必须绑定到两个单独的按键组合 因此我必须执行 2
  • 在 SQL Server 中将月份名称转换为月份编号

    在 T SQL 中 将月份名称转换为数字的最佳方法是什么 E g January gt 1 February gt 2 March gt 3 Etc 是否有任何内置函数可以做到这一点 这个怎么样 select DATEPART MM jan
  • 如何用新列覆盖 Spark 数据框中的整个现有列?

    我想用一个新列覆盖 Spark 列 该新列是二进制标志 我尝试直接覆盖 id2 列 但为什么它不像 Pandas 中的就地操作那样工作 如何在不使用 withcolumn 创建新列和 drop 删除旧列的情况下做到这一点 我知道 Spark