pyspark笔记:读取 处理csv文件

news2024/11/15 21:37:23

pyspark cmd上的命令

1 读取文件

1.1 基本读取方式

注意读取出来的格式是Pyspark DataFrame,不是DataFrame,所以一些操作上是有区别的

1.1.1 format

DataFrame = spark.read.format("csv")
      .option(name,value)
      .load(path)
  • format表示读取格式csv
  • option就是读取csv时可选的选项
  • path就是文件所在的路径

1.1.2 csv

DataFrame = spark.read
      .option(name,value)
      .csv(path)
  • option就是读取csv时可选的选项
  • path就是文件所在的路径

1.1.3 读取多个文件

使用spark.read.csv()可以读取多个csv文件

df = spark.read.csv("path1,path2,path3")

#读取path1,path2和path3
df= spark.read.csv("Folder path")
#读取Folder path里面的所有csv文件

1.2 option 主要参数

sep

默认,

指定单个字符分割字段和值

encoding

默认utf-8

通过给定的编码类型进行解码

header

默认false

是否将第一行作为列名

schema

手动设置输出结果的类型

inferSchema

根据数据预测数据类型

加了的话文件读取的次数是2次。

比如一列int 数据,不设置inferSchema=True的话,那么返回的类型就是string类型,设置了的话,返回类型就是int类型

nullValues

指定在 CSV 中要视为 null 的字符串

1.3 举例

三种设置option的方法:

celltable = spark.read.format("csv")
    .option("header", "true")
    .option("delimiter","\t")
    .load("xxx/test.txt")

celltable = spark.read.format("csv")
    .options(header=True,delimiter='\t')
    .load("xxx/test.txt")


celltable = spark.read.format("csv")
                      .load("xxx/test.txt",header=True,delimiter='\t')
celltable = spark.read
    .option("header", "true")
    .option("delimiter","\t")
    .csv("xxx/test.txt")

此时的celltable不会加载数据 

1.3.1 读入多个文件(使用通配符)

celltable = spark.read.format("csv")
    .option("header", "true")
    .option("delimiter","\t")
    .load("xxx/test_*.txt")

2 其他主要函数

printSchema

打印出 DataFrame /Dataset每个列的名称和数据类型

如果read的时候不手动设置schema,或者使用inferSchema的话,默认每一列的数据类型为string

select

从DataFrame中选取部分列的数据

将提取出来的某一列重命名

filter

条件查询

获得字段LAC是'307'的行

celltable.filter(celltable['LAC']=='307').show()

groupby

sort

排序

first

数据的第一行

head

take

默认是提取一行(此时和first同效果)

如果有参数,那么就是提取最前面的n行

count

行数

collect

获取所有结点的数据

describe

类似于pandas中的describe,不过如果需要展现结果,需要使用show()

 

3 stat

corr

两列的相关系数

 

参考内容:IBBD.github.io/hadoop/pyspark-csv.md at master · IBBD/IBBD.github.io · GitHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬盘数据恢复怎么做?5步快速恢复数据!

“我的电脑刚买回来没多久,不知为啥硬盘就出现问题了,我很多的数据都丢失了,这种情况进行硬盘数据恢复还有希望吗?希望各位老师给我点意见!感谢!” 在数字化时代,数据已经成为我们生活中不可或缺…

美团面试官热爱考察的问题:你真的会判断链表环吗?

大家好,我是小米!今天我要和大家一起来解析美团面试中经常会遇到的一道经典问题:如何判断链表是否为环形链表?这是一道考察数据结构与算法基础的问题,也是面试中的常客。相信通过这篇文章的学习,你将能够更…

【决策树-鸢尾花分类】

决策树算法简介 决策树是一种基于树状结构的分类与回归算法。它通过对数据集进行递归分割,将样本划分为多个类别或者回归值。决策树算法的核心思想是通过构建树来对数据进行划分,从而实现对未知样本的预测。 决策树的构建过程 决策树的构建过程包括以…

C#,中国福利彩票《刮刮乐》的数学算法(02)——时来运转

1 中国福利彩票 中国福利彩票始于1987年7月27日,以“团结各界热心社会福利事业的人士,发扬社会主义人道主义精神,筹集社会福利资金,兴办残疾人、老年人、孤儿福利事业和帮助有困难的人”、即“扶老、助残、救孤、济困”为宗旨。随…

儿童小学生护眼灯选哪个牌子经济好用?分享五款好用的台灯

近期,经济好用的护眼台灯赶上了热潮,许多家长反应不知道怎么选一款合适有经济的护眼台灯?面对市场上很多鱼龙混杂的台灯,真的是眼花缭乱,选台灯不一定要选贵的,但一定要选对的,今天小编就分享五…

网页开发基础——HTML

一、flask框架 Flask是一种轻量级的Python web应用程序框架,可以帮助使用者快速构建Web应用程序和API。由于其简洁、灵活和易于上手的特点,Flask被广泛用于开发小型到中型的Web应用程序和后端API。本次我们主要是使用flask框架,进行一个小型w…

Git链接上游仓库

技术背景 在Git的操作过程中,一般的组织内部工作模式可以在同一个仓库上的master-develop-feature不同分支上进行开发,也有一些人和外部协作者会通过Fork到自己本地的仓库进行更新的方案。但是对于Fork仓库的更新有一个问题是,如果长期在自己…

【React Native】学习记录(一)——环境搭建

Expo是一套工具,库和服务,可让您通过编写JavaScript来构建原生iOS和Android应用程序。 一开始学习的时候直接使用的是expo。 npx create-expo-app my-appcd my-appnpm run start接下来需要搭建安卓和IOS端(为此特意换成了苹果电脑&#xff09…

AArch64异常模型

概述 AArch64 异常模型指南介绍了 Armv8‑A 和 Armv9‑A 中的异常和特权模型。它涵盖了 Arm 架构中不同类型的异常,以及与异常相关的处理器行为。 这些内容适用于底层代码(例如boot code或kernel)开发人员,对于配置或者管理异常…

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站: 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试,在本机搭建好服务器后,可以用这个测试外网是否可以访问本机; 2、 IP查询ipw.cn,这个可以查询本机的网络是否IPv6访问…

ChatGPT把python 的import和from讲明白了

文章目录 1、import:import关键字用于导入整个模块,您可以使用该模块中的所有对象。语法如下:2、from ... import ...:from ... import ... 语法用于从模块中导入特定的对象,而不是导入整个模块。您可以通过这种方式选…

Nginx系列之 一 搭建文件共享服务器

目录 一、概述 二、实现 三、Nginx的限速 3.1 并发限制 3.2 速度限制 Nginx系列之 一 入门安装_开着拖拉机回家的博客-CSDN博客 Nginx系列之 一 反向代理_开着拖拉机回家的博客-CSDN博客 Nginx系列之 一 负载均衡_开着拖拉机回家的博客-CSDN博客 一、概述 Nginx一个高性…

【Docker--harbor私有仓库部署与管理】

目录 一、Harbor 部署1. 部署 Docker-Compose 服务2. 部署 Harbor 服务(1)下载或上传 Harbor 安装程序(2)修改harbor安装的配置文件 3. 启动 Harbor4. 查看 Harbor 启动镜像5. 创建一个新项目1、在虚拟上进行登录 Harbor2、下载镜…

QT连接Mysql数据库

文章目录: 一:准备工作 1.确保QT有Mysql驱动 2.创建数据库和表 二:连接数据库 1.目录结构 2.编辑pro文件 3.编辑.cpp文件 4.运行结果 一:准备工作 1.确保QT有Mysql驱动 这个是QT自己没有的,需要单独下载 不然就…

透过黑马程序员7月就业数据,看下半年经济复苏及数字化人才发展趋势

近日,黑马程序员深圳校区发布了一则就业数据,引得网友围观,其中,Java138期毕业当天就业率达到60.94%,平均就业薪资10148元;Java139期毕业后1个工作日就业率达到了73.13%,平均薪资10505元&#x…

关于anki的一些思考

文章目录 通常情况下选择什么模板制卡?一张填空卡片的填空数量到底要多少才合适? 通常情况下选择什么模板制卡? 通常情况是指知识是以一段文字的形式呈现,而不是这些:单词、选择题、成语等(这些都可以定制…

【机器学习】 奇异值分解 (SVD) 和主成分分析 (PCA)

一、说明 在机器学习 (ML) 中,一些最重要的线性代数概念是奇异值分解 (SVD) 和主成分分析 (PCA)。收集到所有原始数据后,我们如何发现结构?例如,通过过去 6 天…

Java后端开发 —— 记录一个spring入门案例

前言 最近荔枝在转技术栈呢,后端Java零零散散也学了半个月,在一边总结blog输出的同时一遍实操项目。最近学完JavaSE部分的重点之后荔枝来入手spring框架,说起spring其实大家耳熟能详的就想起IoC和AOP了,但在这篇文章荔枝主要还是梳…

Ubuntu22.04 安装Anaconda

文章目录 1.下载Anaconda2.安装Anaconda3.启动环境4.常用命令4.1创建虚拟环境4.2查询当前系统conda虚拟环境4.3挂载虚拟环境4.4退出虚拟环境4.5查看已安装的工具包4.6删除虚拟环境 1.下载Anaconda (1)下载地址:https://mirrors.tuna.tsinghu…

低代码开发重要工具:jvs-flow(流程引擎)审批功能配置说明

流程引擎场景介绍 流程引擎基于一组节点与执行界面,通过人机交互的形式自动地执行和协调各个任务和活动。它可以实现任务的分配、协作、路由和跟踪。通过流程引擎,组织能够实现业务流程的优化、标准化和自动化,提高工作效率和质量。 在企业…