spark | 手把手教你用spark进行数据预处理

本文介绍了如何使用Spark进行数据预处理,包括数据去重和空值处理。首先,通过distinct().count()方法检测并去除完全重复的行,再通过agg与distinct结合处理id不同但特征相同的行。接着,使用monotonically_increasing_id生成新的唯一id。对于空值,先统计缺失值情况,然后设定阈值过滤严重缺失的行,并用均值填充剩余的缺失值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文始发于个人公众号:TechFlow,原创不易,求个关注


今天是spark专题的第七篇文章,我们一起看看spark的数据分析和处理。


过滤去重


在机器学习和数据分析当中,对于数据的了解和熟悉都是最基础的。所谓巧妇难为无米之炊,如果说把用数据构建一个模型或者是支撑一个复杂的上层业务比喻成做饭的话。那么数据并不是“米”,充其量最多只能算是未脱壳的稻。要想把它做成好吃的料理,必须要对原生的稻谷进行处理。

但是处理也并不能乱处理,很多人做数据处理就是闷头一套三板斧。去空值、标准化还有one-hot,这一套流程非常熟悉。以至于在做的时候都不会想,做这些处理的意义是什么。我们做数据处理也是有的放矢的,针对不同的情况采取不同的策略。所以说到这里,你应该已经明白了,首要任务还是需要先对数据有个基本的了解,做到心中有数

那么怎么做到心中有数呢?我们先来看一个具体的例子,假设现在我们有了这么一批数据:

df = spark.createDataFrame([
(1, 144.5, 5.9, 33, 'M'),
(2, 167.2, 5.4, 45, 'M'),
(3, 124.1, 5.2, 23, 'F'),
(4, 144.5, 5.9, 33, 'M'),
(5, 133.2, 5.7, 54
### Oracle 数据库 Linux 安装教程 #### 一、准备工作 为了确保Oracle数据库能够成功安装并稳定运行,在Linux环境下需要满足一定的硬件资源条件。对于CentOS 7而言,建议至少配备4核CPU以及4GB内存[^3]。 #### 二、安装前的软件环境搭建 ##### (三)安装必要的系统程序包 由于Oracle数据库的正常运作依赖于一系列特定版本的GNU/Linux组件和支持工具,因此在正式开始安装之前,必须先确认已正确安装所有必需的系统程序包。这些程序包不仅保障了Oracle数据库可以在Linux平台上顺畅执行,同时也是其安装脚本得以顺利启动的前提条件之一[^2]。 ```bash sudo yum install -y binutils compat-libcap1 gcc make \ gcc-c++ libaio libaio-devel libstdc++-devel glibc glibc-common \ glibc-devel ksh elfutils-libelf elfutils-libelf-devel numactl \ numactl-devel unixODBC unixODBC-devel pcre pcre-devel expat \ expat-devel openldap openldap-devel bzip2 bzip2-devel sqlite \ sqlite-devel readline readline-devel tk tk-devel openssl \ openssl-devel zlib zlib-devel perl-Digest-SHA perl-Digest-MD5 ``` 此命令列出了大部分常见的必要依赖项,但具体需求可能会因不同发行版或版本间的差异有所变化,请参照官方文档核实所需的具体包名及其版本号。 #### 三、下载与解压Oracle安装文件 前往官方网站获取适用于目标操作系统的最新版Oracle Database ZIP压缩包(如`linux.x64_11gR2_database_1of1.zip` 和 `linux.x64_11gR2_database_2of2.zip`),将其放置到服务器上的临时目录内完成解压缩工作: ```bash unzip linux.x64_11gR2_database_1of1.zip -d /opt/oracle/ unzip linux.x64_11gR2_database_2of2.zip -d /opt/oracle/ ``` 上述路径仅为示例,实际应用时可根据实际情况调整存储位置。 #### 四、创建Oracle用户组及账户 为提高安全性并简化权限管理流程,推荐专门为Oracle服务设立独立的身份验证机制——即新建名为oracle的操作员账号连同dba作为主要群组身份;此外还需额外建立oinstall辅助性质的角色用于控制全局范围内的读写访问权能分配情况。 ```bash groupadd oinstall groupadd dba useradd -m -g oinstall -G dba oracle passwd oracle ``` 最后一步设置登录密码环节不可省略,因为后续图形界面引导式的部署向导会询问此项信息。 #### 五、修改操作系统参数配置 编辑/etc/sysctl.conf 文件来优化网络栈表现形式的同时也增强了磁盘I/O性能指标,从而间接促进了整个关系型数据管理系统的工作效率提升幅度达到预期效果。 ```bash fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_max=1048576 ``` 保存更改后立即生效新设定值可通过sysctl –p 命令实现快速加载功能。 #### 六、启动DBCA进行实例创建 当以上各项前置作业均已完成之后,则可正式启动Database Configuration Assistant (DBCA),通过交互式菜单指引完成最终阶段的关键任务—即初始化一个新的物理结构体或者说逻辑单元格,也就是我们常说的数据表空间对象实体化过程。 ```bash su - oracle cd /opt/oracle/database ./runInstaller ``` 按照屏幕提示逐步填写相应选项直至结束即可[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值