Spark数据处理实战之列空值&新增列处理

2023-11-16

在spark dataset/dataframe操作过程中,我们经常会遇到对于一个列值的一些判断情况,是否为NULL,创建一个新列等,本文讲解了常用的增加列的方法,并且对于列空值判断,填充处理以及查询的api做了详细的描述和实例讲解,阅读完可以掌握列的处理相关方法。

增加列

Spark dataframe提供了withColumn函数来进行添加列或者替换列<指定的列名字跟之前的一样时候>,然后返回一个新的dataframe,添加列有以下几种方法:

  1. 利用常量进行增加列,固定值

    import org.apache.spark.sql.functions.lit
    df.withColumn("new_column", lit(1)/lit("name"))  
    
  2. 利用当前已有列变换新增

     df.withColumn("rsrp2", df("rsrp") * 2)
    
  3. select增加列

    df.select(col("*"),  when(df("rsrp") > 10, lit(">10")).when(df("rsrp") === 10, "=10").otherwise("<10").as("rsrp_compare10"))
    
  4. case when当参数嵌套udf

    df.withColumn("r",
       when(df("rsrp").isNull, lit(null)).otherwise(udf1(df("rsrp")).cast(DataTypes.IntegerType)
    
  5. 使用expr函数

    df.withColumn("rsrp4", expr("rsrp * 4")).show
    

列空值判断

NaN和NULL值判断

df("name").isNull
df("name").isNotNull
df("sum").isNaN

列空值删除

// 删除所有列的空值和NaN
df.na.drop()
    
// 删除部分列的控制和NaN 
df.na.drop(Array("gender","yearsmarried"))

列空值填充

// 所有列空值填充为
df.na.fill("notNull")
    
//对指定的列空值填充
// 指定的多个列填充为相同的值    
df.na.fill(value="notNull",cols=Array("gender","yearsmarried"))

// 分别不同列指定不同的值
df.na.fill(Map("gender"->"xxx", "name"->"yyy")) 

查询空值列

df.filter("gender is null").select("gender").limit(10).show
df.filter( df("gender").isNull ).select("gender").limit(10).show    

参考

  1. https://www.cnblogs.com/wwxbi/p/6011422.html

  2. https://www.cnblogs.com/yy3b2007com/p/9872492.html

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

Spark数据处理实战之列空值&新增列处理 的相关文章

  • 任务长期不释放和占用单节点持续的cpu,导致hivesever2本身内存泄漏造成

    任务长期不释放和占用单节点持续的cpu 导致hivesever2本身内存泄漏造成 产生的原因在于 查询过于复杂或者数据量过大 当有复杂的查询或处理大量数据的请求时 HiveServer2可能会出现高负载 这可能涉及大量的计算 IO操作或涉及
  • windows下安装spark及hadoop

    windows下安装spark 1 安装jdk 2 安装scala 3 下载spark spark下载地址 3 1安装spark 将下载的文件解压到一个目录 注意目录不能有空格 比如说不能解压到C Program Files 作者解压到了这
  • spark集群搭建与mysql元数据管理

    找个spark集群搭建是针对于上一篇hadoop的基础上搭建的 所以spark的版本也是要按照着hadoop版本进行下载 1 解压spark 修改spark的 etc profile的home目录 2 安装SCALA 并配置SCALA HO
  • Spark基础知识(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 一 Spark概述 Spark模块 Core SQL Streami
  • Kafka传输数据到Spark Streaming通过编写程序java、scala程序实现操作

    一 案例说明 现有一电商网站数据文件 名为buyer favorite1 记录了用户对商品的收藏数据 数据以 t 键分割 数据内容及数据格式如下 二 前置准备工作 项目环境说明 Linux Ubuntu 16 04 jdk 7u75 lin
  • Spark on Kubernetes 与 Spark on Yarn 不完全对比分析

    前言 Apache Spark 是目前应用最广泛的大数据分析计算工具之一 它擅长于批处理和实时流处理 并支持机器学习 人工智能 自然语言处理和数据分析应用 随着 Spark 越来越受欢迎 使用量越来越大 狭义上的 Hadoop MR 技术栈
  • 浅谈Hadoop体系和MPP体系

    浅谈Hadoop体系和MPP体系 引言 如题 在大数据发展至今 为了应对日益繁多的数据分析处理 和解决客户各种奇思妙 怪 想需求 形形色色的大数据处理的框架和对应的数据存储手段层出不穷 有老当益壮的Hadoop体系 依靠Hadoop巨大的社
  • Spark 源码阅读一-启动脚本

    Spark Complile Help Links Because spark 1 5 need maven version 3 3 3 so i track the branch 1 4 git branch a git checkout
  • 大数据开发必备面试题Spark篇合集

    1 Hadoop 和 Spark 的相同点和不同点 Hadoop 底层使用 MapReduce 计算架构 只有 map 和 reduce 两种操作 表达能力比较欠缺 而且在 MR 过程中会重复的读写 hdfs 造成大量的磁盘 io 读写操作
  • Hudi和Kudu的比较

    与Kudu相比 Kudu是一个支持OLTP workload的数据存储系统 而Hudi的设计目标是基于Hadoop兼容的文件系统 如HDFS S3等 重度依赖Spark的数据处理能力来实现增量处理和丰富的查询能力 Hudi支持Increme
  • 学习笔记-Spark环境搭建与使用

    一 20 04 Ubuntu安装 清华源ISO源 https mirrors tuna tsinghua edu cn ubuntu releases 20 04 下载链接 https mirrors tuna tsinghua edu c
  • 数据中台-让数据用起来-6

    文章目录 第六章 数据开发 数据价值提炼工厂 6 1 数据计算能力的4种类型 6 1 1 批计算 6 1 2 流计算 6 1 3 在线查询 6 1 4 即席分析 6 2 离线开发 1 作业调度 2 基线控制 3 异构存储 4 代码校验 5
  • Spark 【分区与并行度】

    RDD 并行度和分区 SparkConf setMaster local 我们在创建 SparkContext 对象时通常会指定 SparkConf 参数 它包含了我们运行时的配置信息 如果我们的 setMaster 中的参数是 local
  • Spark学习(文件读取路径)

    在不同的启动模式下 加载文件时的路径写法是不一样的 对于local模式下 默认就是读取本地文件 而在standlone或者yarn client 或者cluster模式下 默认读的都是hdfs文件系统 这几种模式下很难读取本地文件 这是很显
  • 2020-10-24 大数据面试问题

    上周面试数据开发职位主要从公司的视角讲一下记录下面试流水 1 三面技术一轮hr 面到了cto 整体来看是这一周技术含量最高信息量最大的一个 1到4轮过了4个小时 技术上的问题主要问的对数据分层的理解 1 一面自我介绍 目前团队的规模多大 2
  • 大数据手册(Spark)--Spark基本概念

    文章目录 Spark 基本概念 Hadoop 生态 Spark 生态 Spark 基本架构 Spark运行基本流程 弹性分布式数据集 RDD Spark安装配置 Spark基本概念 Spark基础知识 PySpark版 Spark机器学习
  • spark-3.1.2兼容多版本hive

    2 3 9版本Hive的支持 直接在实例化SparkSession时 启用hive支持即可 例如 val spark SparkSession builder appName Spark Hive Example config spark
  • spark hadoop环境及运行

    hadoop配置 在Ubuntu20 04里安装Hadoop详细步骤 图文 亲测成功 ubuntu20 04安装hadoop 菜鸡的学习之路的博客 CSDN博客 启动hadoop root ubuntu usr local hadoop s
  • JAVA 安装与简单使用

    JAVA简易安装 下载安装 环境变量 进入变量界面 设置变量 验证JAVA环境 运行Java程序 个人站 ghzzz cn 还在备案 很快就能访问了 下载安装 第一步当然是从官网下载安装java了 网上有很多的教程 这里简单的写一下 在这里
  • python+django基于Spark的国漫画推荐系统 可视化大屏分析

    国漫推荐信息是现如今社会信息交流中一个重要的组成部分 本文将从国漫推荐管理的需求和现状进行分析 使得本系统的设计实现具有可使用的价 做出一个实用性好的国漫推荐系统 使其能满足用户的需求 并可以让用户更方便快捷地国漫推荐 国漫推荐系统的设计开

随机推荐

  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • StyleGAN系列学习笔记

    StyleGAN可以无监督地分离高级属性 例如 姿态 身份 和生成图像中的随机变化 例如 雀斑 头发 控制图像不同层次的视觉特征 StyleGAN v1 Figure 1 传统生成器 vs Style based生成器 给定输入latent
  • Linux深度学习训练笔记

    首先要拥有Linux服务器一台 云服务器或者本地服务器均可 Linux系统上需要安装好cuda与cudnn 查看cuda或者显卡信息 nvidia smi 安装好Anaconda 下一步 配置conda环境 conda create n 环
  • 通过加载ip_nat_pptp模块使iptables支持PPTP穿透

    http blog 163 com kuang yl blog static 16287406201302264231535 通过加载ip nat pptp模块使iptables支持PPTP穿透 之前为了做L7filter的测试 在公司里找
  • 初识c语言

    1 数据类型 char 1字节 short 2字节 int 4字节 long 4字节 long long 8字节 float 4字节 double 8字节 2 编译器默认一个小数为double类型 3 局部变量 在 内定义的变量 全局变量
  • 远程连接MySQL报错ERROR 2003解决办法

    转自 http www 111cn net database mysql 48040 htm 问题代码代码 ERROR 2003 HY000 Can t connect to MySQL server on 192 168 0 19 111
  • C++继承详解

    文章目录 前言 一 继承的概念和定义 1 继承的概念 2 继承的定义 二 继承方式和访问限定符 三 基类和派生类对象赋值转换 四 继承中的作用域 五 派生类的默认成员函数规则 六 菱形继承 七 继承小总结 前言 在现实生活中我们会遇到不同身
  • 单向散列函数(Hash)

    http www cnblogs com happyhippy archive 2006 12 23 601368 html 单向散列函数 Hash 0 Hash函数的性质 常用Hash函数 MD5 128bit SHA 1 160bit
  • Windows系统输入法的相关文件

    以下是Windows ime目录下自带的输入法的相关文件列表 全拼 Winpy ime Winpy mb Winpy hlp Winpy cnt 双拼 Winsp ime Winsp mb Winsp hlp Winsp cnt 微拼 Pi
  • 云计算中的海量数据存储在哪_云计算中的块级数据存储如何工作

    云计算中的海量数据存储在哪 Cloud computing and IT demands are directly proportional to each other To deliver consistency with securit
  • MySQL-分库分表详解(二)

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 前言
  • WSL2 安装 Arch Linux 子系统

    WSL 介绍与安装 Windows Subsystem for Linux 以下简称为 WSL 允许开发人员直接在Windows上运行GNU Linux环境 包括大多数命令行工具 实用程序和应用程序 无需修改 无需传统虚拟机或双引导设置的开
  • 数据结构和算法(堆排序和哈夫曼树、哈夫曼编码、解码)

    堆排序 一般使用大顶堆升序排列 使用小顶堆降序排列 下图为代码测试的树 数组格式 堆降序代码实现 import java util Arrays public class HeapSort public static void main S
  • 移植应用Wireless Tools

    移植应用Wireless Tools 前提条件 下载源码 打个补丁 解压缩源码 打补丁 编译安装 使用方法 大致流程 常见问题 前提条件 下载源码 点击前往下载 或者使用以下命令 wget c https hewlettpackard gi
  • Unity2019.4.31f1 物体动画切换与移动

    控制小鸡每隔一定时间就随机执行一个动作 该动作在三个动作中随机选择 摆头 吃东西 行走 其中行走会随机选择一个方向 进行旋转并前进一段时间 ChickenController cs using System Collections usin
  • 异常之自定义异常类

    自定义的异常类一般步骤 1 自定义异常类要继承于Exception类或其子类 或其它异常类 2 为自定义异常类声明字段 属性 成员 方法成员或重写父类的字段和方法 3 自定义异常类至少要定义两个构造方法 一个是无参的 另外一个是带 Stri
  • python操作word——python-docx和python-docx-template模块

    前言 项目用到了导出文档 综合考虑使用python docx模块 目录 python docx 安装 docx文档布局词汇 三个部分 文档 段落 文字块 四级结构 表格 使用 导入word 读操作 获取段落 获取段落文本内容 获取文字块文本
  • AD铺铜中铺地选择异形铺铜方式

    在使用AD时 最后的一步铺铜 铺地 如果是矩形的板子 铺铜很简单 直接捕捉拐角点即可 但是一些异形的板子 就不是那么好办了 虽然可以全选铺铜 最后也不影响最后的PCBA实物 但是有强迫症的肯定会看着不舒服 比如我 所以找到一种快速铺异形板子
  • Go(一)变量和常量

    目录 标识符与关键字 标识符 关键字 变量 变量的来历 变量类型 变量声明 标准声明 批量声明 变量的初始化 类型推导 短变量声明 匿名变量 常量 iota 几个常见的iota示例 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的
  • Spark数据处理实战之列空值&新增列处理

    在spark dataset dataframe操作过程中 我们经常会遇到对于一个列值的一些判断情况 是否为NULL 创建一个新列等 本文讲解了常用的增加列的方法 并且对于列空值判断 填充处理以及查询的api做了详细的描述和实例讲解 阅读完