Spark Dataframe 列可为 null 的属性更改

2024-04-30

我想更改 Spark Dataframe 中特定列的可为空属性。

如果我当前打印数据框的模式,它看起来如下所示。

col1: string (nullable = false)
col2: string (nullable = true)
col3: string (nullable = false)
col4: float (nullable = true)

我只是想col3要更新的可空属性。

col1: string (nullable = false)
col2: string (nullable = true)
col3: string (nullable = true)
col4: float (nullable = true)

我在线检查了这里有一些链接,但似乎他们正在为所有列执行此操作,但不是针对特定列,请参阅更改 Spark 数据框中列的可为空属性 https://stackoverflow.com/questions/33193958/change-nullable-property-of-column-in-spark-dataframe。 有人可以在这方面帮助我吗?


没有“明确”的方法可以做到这一点。你可以使用类似的技巧here https://stackoverflow.com/questions/33193958/change-nullable-property-of-column-in-spark-dataframe

该答案的相关代码:

def setNullableStateOfColumn( df: DataFrame, cn: String, nullable: Boolean) : DataFrame = {

  // get schema
  val schema = df.schema
  // modify [[StructField] with name `cn`
  val newSchema = StructType(schema.map {
    case StructField( c, t, _, m) if c.equals(cn) => StructField( c, t, nullable = nullable, m)
    case y: StructField => y
  })
  // apply new schema
  df.sqlContext.createDataFrame( df.rdd, newSchema )
}

它将复制 DataFrame 并复制架构,但以编程方式指定可为空

许多列的版本:

def setNullableStateOfColumn(df: DataFrame, nullValues: Map[String, Boolean]) : DataFrame = {

  // get schema
  val schema = df.schema
  // modify [[StructField]s with name `cn`
  val newSchema = StructType(schema.map {
    case StructField( c, t, _, m) if nullValues.contains(c) => StructField( c, t, nullable = nullValues.get(c), m)
    case y: StructField => y
  })
  // apply new schema
  df.sqlContext.createDataFrame( df.rdd, newSchema )
}

用法: setNullableStateOfColumn(df1, Map ("col1" -> true, "col2" -> true, "col7" -> false));

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

Spark Dataframe 列可为 null 的属性更改 的相关文章

随机推荐

  • 为什么空切片有 24 个字节?

    我想了解创建空切片时会发生什么make int 0 我执行此代码进行测试 emptySlice make int 0 fmt Println len emptySlice fmt Println cap emptySlice fmt Pri
  • 如何在Python中模拟“+”运算符(特别是datetime.date + datetime.timedelta)

    我已经解决了 Django 中的一些日期模拟问题 并且最后的障碍 我希望 是以下情况 我有一个 FakeDate 类 它派生于datetime date 它嘲笑了 FakeDate 类按预期工作 但是在添加datetime timedelt
  • 如何在关闭 Bootstrap 3 模式时重新加载页面

    我的目标是在引导模式关闭时重新加载页面 用户可以通过单击关闭按钮或图标或单击远离模式来关闭模式 到目前为止我的代码非常标准 取自 http getbootstrap com javascript modals http getbootstr
  • 最大递归并不完全是 sys.getrecursionlimit() 所声称的。怎么会?

    我制作了一个小函数 可以实际测量最大递归限制 def f x r x try r f x 1 except Exception as e print e finally return r 为了知道会发生什么 我已经检查过 In 28 imp
  • 调用 Word.Documents.Add 后 WinWord.exe 不会退出 - Word .NET Interop

    我遇到了一个经典场景 即在 NET 中创建 Word COM 对象 通过 Microsoft Office Interop Word 程序集 时 WinWord 进程不会退出 即使我正确关闭和释放物体 http www xtremevbta
  • torch.stack() 和 torch.cat() 函数有什么区别?

    OpenAI 的强化学习 REINFORCE 和 actor critic 示例具有以下代码 加强 https github com pytorch examples blob master reinforcement learning r
  • 使用选项卡小部件将 ActiveForm 字段拆分为不同的选项卡

    我正在创建一个表单视图 我想使用官方选项卡小部件以选项卡结构组织表单字段 是否可以使用包含活动表单字段的 div 元素的 id 或类 来初始化选项卡小部件 如何管理它的一个示例如下 首先 将您的联系表单分为每个选项卡的一个视图文件 将 Ac
  • 模板文字类型打字稿重复

    是否可以使用模板文字类型构建重复 例如 type Hex a b c type Id Hex Hex Here I want to say Id is N hex long 原则上 这可以通过 TS 4 1 中的递归条件类型实现 type
  • 使用制表器设置最大桌子高度

    Tabulator 库似乎支持两种设置表格高度的模式 显式值 如果数据集中没有足够的行 则强制在底部出现 灰色 区域 如果行太多 则使用垂直滚动条 或自动模式 调整高度以适合实际数据 不创建滚动条 可以使用最大高度 以便在需要时出现垂直滚动
  • ASP.NET:获取*真实*原始 URL

    在ASP NET中 有什么办法可以得到real原始网址 例如 如果用户浏览到 http example com mypage aspx 2F http example com mypage aspx 2F 我希望能够得到 http exam
  • Phonegap 中使用 AJAX 的 CSRF 令牌

    我正在开发一个应用程序Phonegap使用 Django 后端 后端使用csrf 所以我需要我的Phonegap要使用的应用程序csrf所以它可以与Django 我读到你可以使用csrf通过Ajax 但我没能让它工作 您能举个例子告诉我我该
  • React Redux 混乱

    事实证明 Redux 对我来说有点难以理解 我想知道是否有人可以帮助我指出正确的方向 以获取我想要的结果 只是一个预警 我正在使用 ES6 语法 好的 我已经设置了一些沙箱来测试 redux 的工作原理 这是我正在使用的当前文件设置 act
  • ActiveAndroid 使用架构迁移预填充表

    我想第一次创建一个表 数据库版本 1 并默认插入2行 该表需要由ActiveAndroid自动创建 并且应该通过我在1 sql文件中编写的SQL插入记录 该表看起来不错 但根本没有插入行 没有抛出错误 该模型如下所示 Table name
  • Select2:预选项并通过templateSelection正确渲染

    使用时选择2 v4 https select2 github io 建议的 实际上是正确的 方式以编程方式设置选定的值 就是操作底层的select元素 添加想要的
  • 来自字符串的 Swift Keypath

    有没有办法在 Swift 4 中从字符串创建 Keypath 以通过路径或变量名访问结构中的值 最后我发现我应该使用 CodingKeys 而不是 KeyPaths 通过 String 访问结构体变量的值 提前致谢 迈克尔 考虑你有这样的东
  • 实体框架将 s 添加到我的 .dbo

    我现在使用 Entity Framework DbContext 但遇到了异常 towars dbo 未找到 这很奇怪 因为在我的网站上我总是询问 towar dbo 但没有 towars dbo 你知道问题出在哪里吗 InnerExcep
  • 如何使用 C# 获取 Mozilla 浏览器的当前位置 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 获取 Firefox 网址 https stackoverflow com questions 430614 get firefox url 我在开发 Windows 应用程序以获取正在运行的 Moz
  • 如何确定Access数据库中哪个表使用的空间最多?

    有没有简单的方法可以确定 Access 2007 数据库中每个表使用了多少空间 我有一个异常大的 Access 数据库 需要找出哪个表使用最多的空间 行计数没有提供有关已用空间的足够信息 我知道这是一篇旧文章 但我根据自己对同一问题的经验有
  • mySQL中外键必须是索引吗?

    我刚刚自己创建了第一个 mySQL 表 除了使用 Joomla Wordpress 等 我是 MS SQL 开发人员多年 但通常我可以轻松地在 MS SQL 中创建外键 但我遇到了困难或这里缺乏知识 这是我的表格 users user id
  • Spark Dataframe 列可为 null 的属性更改

    我想更改 Spark Dataframe 中特定列的可为空属性 如果我当前打印数据框的模式 它看起来如下所示 col1 string nullable false col2 string nullable true col3 string