如果为 null 则替换为 0,否则在同一列中使用默认值

2024-05-04

在SparkR shell 1.5.0中,创建了一个示例数据集:

df_test <- createDataFrame(sqlContext, data.frame(mon = c(1,2,3,4,5), year = c(2011,2012,2013,2014,2015)))
df_test1 <- createDataFrame(sqlContext, data.frame(mon1 = c(1,2,3,4,5,6,7,8)))
df_test2 <- join(df_test1, df_test, joinExpr = df_test1$mon1 == df_test$mon, joinType = "left_outer")

数据集:df_test2

+----+----+------+
|mon1| mon|  year|
+----+----+------+
| 7.0|null|  null|
| 1.0| 1.0|2011.0|
| 6.0|null|  null|
| 3.0| 3.0|2013.0|
| 5.0| 5.0|2015.0|
| 8.0|null|  null|
| 4.0| 4.0|2014.0|
| 2.0| 2.0|2012.0|
+----+----+------+

问题:如果有null我怎样才能将它替换为0在列中df_test2$year或者使用默认值?

输出应该是这样的,

+----+----+------+
|mon1| mon|  year|
+----+----+------+
| 7.0|null|  0   |
| 1.0| 1.0|2011.0|
| 6.0|null|  0   |
| 3.0| 3.0|2013.0|
| 5.0| 5.0|2015.0|
| 8.0|null|  0   |
| 4.0| 4.0|2014.0|
| 2.0| 2.0|2012.0|
+----+----+------+

我用过otherwise/when,但不起作用

df_test2$year <- otherwise(when(isNull(df_test2$year), 0 ), df_test2$year)

它抛出了错误,

Error in rep(yes, length.out = length(ans)) :
  attempt to replicate an object of type 'environment'

我使用了原始 SQLcase when表达式来得到答案,

df_test3 <- sql(sqlContext, "select mon1, mon, case when year is null then 0 else year end year FROM temp")

showDF(df_test3)
+----+----+------+
|mon1| mon|  year|
+----+----+------+
| 7.0|null|   0.0|
| 1.0| 1.0|2011.0|
| 6.0|null|   0.0|
| 3.0| 3.0|2013.0|
| 5.0| 5.0|2015.0|
| 8.0|null|   0.0|
| 4.0| 4.0|2014.0|
| 2.0| 2.0|2012.0|
+----+----+------+

尽管它给出了答案,但我正在寻找纯 SparkR 代码。

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

如果为 null 则替换为 0,否则在同一列中使用默认值 的相关文章

随机推荐

  • 寻找仅 php 电子邮件地址混淆器功能

    有没有仅适用于 php 的电子邮件地址混淆器功能 网上找到的大多数都是 JS 和 PHP 的混合体 这是我使用的几个函数 第一个使用 html 字符代码混淆电子邮件地址 function getObfuscatedEmailAddress
  • 将副词应用于动名词列表

    考虑一个动名词列表和一些我们希望循环应用它们的数据 ms NB list of gerunds d 3 4 5 6 NB some data 我们可以做的 ms d NB returns 9 ie the result of 3 4 5 6
  • Jupyter Notebook仅适用于基础环境

    Jupyter 笔记本今天突然停止正常工作 如果我像这样启动 Jupyter 那么一切都在基础环境中正常工作 activate base jupyter notebook 但是在任何其他环境中启动它或者只是在不声明环境的情况下启动它 act
  • 无法加载文件或程序集“App_Web_1btizmpz,

    我遇到以下错误 Could not load file or assembly App Web 1btizmpz Version 0 0 0 0 Culture neutral PublicKeyToken null or one of i
  • setTimeout 调用期间超出最大调用堆栈大小

    我试图每 4 秒调用一次我的函数 这样它就会实时增加一个数字 由于某种原因 我不断收到错误 这是我的代码
  • 如何仅在某些列中设置带有复选框的 TListView?

    我正在使用 Delphi 2010 并且我试图允许用户在 TListView 中的每行 2 个选项之间进行选择 使用 TListView 我可以将样式设置为 vsReport 并启用复选框 但这只会让我每行有 1 个复选框 我需要的是每行
  • 如何在 excel 2007 vba 中以编程方式对一组形状进行分组?

    我正在迭代电气表表上的数据并在形状表上创建形状 创建形状后 我想以编程方式对它们进行分组 但是我无法找出正确的语法 形状就在那里 被选中 如果我单击分组按钮 它们就会完美分组 但是通过下面的代码我得到 运行时错误 438 对象不支持此方法或
  • 使用 MVVM 的 C# 泛型,将 T 从 中取出

    My Model是一个泛型类 包含 例如 Value属性可以是 int float string bool 等 所以很自然地 这个类的表示形式如下Model
  • jQuery:移动窗口视口以显示新切换的元素

    我在文档中有一段 jQuery 代码片段 它可以切换包含 a 的 divtextarea div addnote area hide hide the div a addnote link click function click even
  • Storm动态拓扑

    Storm 支持动态拓扑吗 我想要的功能是在 Storm 拓扑运行时根据用户要求动态更改拓扑 例如 当用户想知道流的前 10 个单词时 我使用前 10 个 Bolt 来处理它 当用户想知道其他内容时 我使用另一个 Bolt 来处理流并 拔掉
  • 使用 jQuery 选择特定 href 的锚标记

    THE AIM 刷新浏览器后 我希望用户保留在刷新之前的菜单 内容中 问题 刷新浏览器后 用户刷新之前所在的特定菜单的内容将显示为活动状态 即显示在屏幕上 但是 该特定内容的菜单图标未显示为活动状态 即 它不显示黑色 我在选择锚元素时遇到困
  • Visual C# 窗体中的控制台

    我想在我的表单中获得一个控制台窗口 基本上当你点击button1 它运行一个批处理脚本 test exe 我不需要单独的批处理窗口 但我希望它显示在我的表单中 我认为可能有两种方法可以做到这一点 要么 1 以某种方式将控制台嵌入到我的表单中
  • PowerShell 中一个命令中的多个前景色

    我想用一个语句输出许多不同的前景色 PS C gt Write Host Red ForegroundColor Red Red 该输出为红色 PS C gt Write Host Blue ForegroundColor Blue Blu
  • 如何关闭使用presentModalViewController打开的视图控制器:

    我使用了一个视图控制器presentModalViewController 现在如何关闭 关闭它 对于 iOS6 使用此代码 self dismissViewControllerAnimated YES completion Nil 代替
  • 我怎样才能重写这个nginx“if”语句?

    例如 我想这样做 if http user agent MSIE 6 0 http user agent MSIE 7 0 etc etc rewrite ROOT ROOT ancient last break 而不是这个 if http
  • document.all 和 document.forms 之间的区别[0]

    任何人都可以解释一下两者之间有什么区别 document all 和document forms 0 please 谢谢 document all为您提供对包含文档所有元素的类数组对象的引用在 Internet Explorer 中 IE
  • 是否可以在切换 QTreeWidgetItem 复选框时创建信号?

    我使用下面的代码创建了一个也是 QTreeWidgetItem 的复选框 Populate list QTreeWidgetItem program createCheckedTreeItem QString fromStdString i
  • Google Cloud ML:输出的外部尺寸必须未知

    我们在本地得到了一个工作的导出模型 正在创建一个新的模型版本谷歌云机器学习如下 Create Version failed Model validation failed Outer dimension for outputs must b
  • JobService 在 android 9 中不会重新安排

    我正在尝试让我的应用程序在 Android 9 上运行 以下代码在 Android 8 上运行良好 但由于某种原因 JobService 不会在 android 9 上重新安排 它第一次被安排 但不会根据到设定的周期 class Retri
  • 如果为 null 则替换为 0,否则在同一列中使用默认值

    在SparkR shell 1 5 0中 创建了一个示例数据集 df test lt createDataFrame sqlContext data frame mon c 1 2 3 4 5 year c 2011 2012 2013 2