当前位置: 首页 > news >正文

pyspark笔记:读取 处理csv文件

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

相关文章:

pyspark笔记:读取 处理csv文件

pyspark cmd上的命令 1 读取文件 1.1 基本读取方式 注意读取出来的格式是Pyspark DataFrame,不是DataFrame,所以一些操作上是有区别的 1.1.1 format DataFrame spark.read.format("csv").option(name,value).load(path) format表示读取…...

多租户分缓存处理

多租户redis缓存分租户处理 那么数据库方面已经做到了拦截,但是缓存还是没有分租户,还是通通一个文件夹里, 想实现上图效果,global文件夹里存的是公共缓存。 首先,那么就要规定一个俗称,缓存名字带有globa…...

RN输入框默认设置数字键盘

<TextInput keyboardType"numeric"/> keyboardType 决定弹出何种软键盘类型&#xff0c;譬如numeric&#xff08;纯数字键盘&#xff09;。 See screenshots of all the types here. 这些值在所有平台都可用&#xff1a; defaultnumber-paddecimal-padnume…...

计算机网络——应用层

文章目录 **1 网络应用模型****2 域名系统DNS****3 文件传输协议FTP****4 电子邮件****4.1 电子邮件系统的组成结构****4.2 电子邮件格式与MIME****4.3 SMTP和POP3** **5 万维网WWW****5.1 HTTP** 1 网络应用模型 客户/服务器模型 C/S 服务器服务于许多来自其他称为客户机的主…...

【C++】写一个函数实现系统时间与输入时间进行比较

目录 1 代码 2 运行结果 时间比较函数: 输入为字符串2023-7-28,将字符串分解为年、月、日信息。 获取系统时间2023-7-24,然后将输入时间和系统时间进行比较,输出比较结果。 1 代码 #include <ctime> #include<iostream> #include<vector> using names…...

uniapp 微信小程序 navigationBarBackgroundColor 标题栏颜色渐变

大体思路&#xff1a; 第一步&#xff1a;“navigationStyle”:“custom” 第二步&#xff1a; template内 重点&#xff1a;给view添加ref“top” 第三步&#xff1a;添加渐变色样式 1、pages.json {"path" : "pages/user/user","style" : …...

ffplay播放器剖析(7)----音视频暂停模块分析

文章目录 1. 暂停触发流程2. toggle_pause3. stream_toggle_pause 1. 暂停触发流程 1.通过SDL触发事件调用toggle_pause 2.toggle_pause调用stream_toggle_pause 3.stream_toggle_pause修改暂停变量 2. toggle_pause static void toggle_pause(VideoState *is) {stream_to…...

ceph-mon运行原理分析

一、流程&#xff1a;ceph-deploy部署ceph-mon组建集群 1.ceph-deploy部署ceph-mon的工作流程及首次启动 1&#xff09;通过命令创建ceph-mon&#xff0c;命令为&#xff1a;ceph-deploy create mon keyring def mon(args):if args.subcommand create:mon_create(args)elif…...

听GPT 讲K8s源代码--pkg(八)

k8s项目中 pkg/kubelet/envvars&#xff0c;pkg/kubelet/events&#xff0c;pkg/kubelet/eviction&#xff0c;pkg/kubelet/images&#xff0c;pkg/kubelet/kubeletconfig这些目录都是 kubelet 组件的不同功能模块所在的代码目录。 pkg/kubelet/envvars 目录中包含了与容器运行…...

差速驱动机器人的车轮里程计模型

一、说明 车轮测程法是指使用旋转编码器(即连接到车轮电机以测量旋转的传感器)的测程法(即估计运动和位置)。这是轮式机器人和自动驾驶汽车定位的有用技术。 在本文中,我们将通过探索差速驱动机器人的车轮里程计模型来深入研究车轮里...

Pytorch个人学习记录总结 09

目录 损失函数与反向传播 L1Loss MSELOSS CrossEntropyLoss 损失函数与反向传播 所需的Loss计算函数都在torch.nn的LossFunctions中&#xff0c;官方网址是&#xff1a;torch.nn — PyTorch 2.0 documentation。举例了L1Loss、MSELoss、CrossEntropyLoss。 在这些Loss函数…...

代码随想录算法训练营day51 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

题目链接309.最佳买卖股票时机含冷冻期 class Solution {public int maxProfit(int[] prices) {if (prices null || prices.length < 2) {return 0;}int[][] dp new int[prices.length][2];dp[0][0] -prices[0];dp[0][1] 0;dp[1][0] Math.max(dp[0][0], dp[0][1] - pr…...

做UI设计需要具备什么平面技能呢优漫动游

想要成为一名合格的UI设计师&#xff0c;那么需要学会的技能是非常多的&#xff0c;UI设计包含的知识点也比较多&#xff0c;那么具体做UI设计需要具备什么技能呢?来看看下面小编的详细介绍吧。 —、软件能力 一位好的ui设计师除了需要精通Photoshop.IlustratorDW.C4D等设…...

cass--单选不累加设置

打开软件&#xff0c;在空白处右击--选项--选择&#xff0c;如下&#xff1a; 完成后&#xff0c;点击确定按钮即可。...

线程结构——链表

C中的链表是一种非常常见的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含一个数据元素和一个指向下一个节点的指针。 链表结构包括单向链表、双向链表和循环链表&#xff1b; 1.单向链表 单向链表由一系列节点组成&#xff0c;每个节点包含一个数据元素和…...

freeRTOS:基于(信号量+线程)的日志系统设计

1.日志的重要性 故障排查与调试&#xff1a;嵌入式系统通常运行在资源有限的环境中&#xff0c;故障排查和调试变得尤为复杂。日志系统可以记录系统在运行过程中的各种操作、状态和事件信息&#xff0c;方便开发人员追踪和定位问题所在。通过分析日志&#xff0c;可以快速找到故…...

数据可视化(1)

使用python带的matplotlib库进行简单的绘图。使用之前先进行安装&#xff0c;pip install matplotlib。如果安装了Anaconda,则无需安装matplotlib。 1.简单折线图 #绘制简单图表 import matplotlib.pyplot as plt plt.plot([1,2,3,4,5]) plt.show() import matplotlib.pyp…...

Llama 2: Open Foundation and Fine-Tuned Chat Models

文章目录 TL;DRIntroduction背景本文方案 实现方式预训练预训练数据训练细节训练硬件支持预训练碳足迹 微调SFTSFT 训练细节 RLHF人类偏好数据收集奖励模型迭代式微调&#xff08;RLHF&#xff09;拒绝采样&#xff08;Rejection Sampling&#xff09;PPO多轮一致性的系统消息&…...

BTY-DNS AMA回顾:致力于创建Web3领域中的去中心化身份(DID)

传统域名系统 (DNS) 是一个分层的分散信息存储&#xff0c;用于将用户在网络浏览器中输入可读名称&#xff08;例如www.baidu.com&#xff09;解析为IP地址&#xff0c;来访问互联网上的计算机。传统域名系统存在一些例如过于集中化管理、效率并不高等局限性问题。而去中心化域…...

【设计模式——学习笔记】23种设计模式——装饰器模式Decorator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

生活案例 咖啡厅 咖啡定制案例 在咖啡厅中&#xff0c;有多种不同类型的咖啡&#xff0c;客户在预定了咖啡之后&#xff0c;还可以选择添加不同的调料来调整咖啡的口味&#xff0c;当客户点了咖啡添加了不同的调料&#xff0c;咖啡的价格需要做出相应的改变。 要求&#xff…...

如何免费解锁DeepL专业翻译:Bob插件终极使用指南

如何免费解锁DeepL专业翻译&#xff1a;Bob插件终极使用指南 【免费下载链接】bob-plugin-akl-deepl-free-translate **DeepL免秘钥,免启服务**,双击使用,免费无限次使用,(**新增DeepL单词查询功能**)根据网页版JavaScript加密算法逆向开发的bobplugin;所以只要官网的算法不改,…...

OpCore-Simplify:用自动化技术将黑苹果配置时间从数小时缩短到10分钟

OpCore-Simplify&#xff1a;用自动化技术将黑苹果配置时间从数小时缩短到10分钟 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经花费数小时…...

告别官方软件臃肿:惠普暗影精灵笔记本的纯净性能管家OmenSuperHub

告别官方软件臃肿&#xff1a;惠普暗影精灵笔记本的纯净性能管家OmenSuperHub 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否曾经因为惠普Omen Gam…...

新手入门指南:在快马平台用AI生成你的第一个龙虾部署实践项目

今天想和大家分享一个特别适合新手的实践项目——用Docker部署一个简单的Python Flask应用。这个项目是我在InsCode(快马)平台上完成的&#xff0c;整个过程对初学者非常友好&#xff0c;连我这种刚接触容器化的小白都能轻松上手。 为什么选择FlaskDocker组合 Flask是Python最轻…...

PowerPaint-V1效果展示:智能识别背景纹理,物体移除毫无痕迹

PowerPaint-V1效果展示&#xff1a;智能识别背景纹理&#xff0c;物体移除毫无痕迹 1. 引言 你有没有遇到过这样的烦恼&#xff1f;拍了一张完美的风景照&#xff0c;但角落里总有个垃圾桶或者路人甲闯入镜头&#xff1b;找到一张绝佳的配图&#xff0c;但上面却印着碍眼的水…...

告别中文文献管理烦恼:Jasminum插件如何让你的Zotero效率提升300%

告别中文文献管理烦恼&#xff1a;Jasminum插件如何让你的Zotero效率提升300% 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 还在…...

西门子S7-200 SMART PLC与SMART 700触摸屏在追剪定长切割系统中的稳定应用

追剪&#xff0c;定长切割&#xff0c;跟随切割&#xff0c;PLC用的是西门子smart200&#xff0c;屏用的是smart700&#xff0c;是实际项目运行非常稳定&#xff0c;带堆放功能&#xff0c;报警功能&#xff0c;可提供CAD电气图&#xff0c;程序源代码&#xff0c;屏程序源代码…...

高效解决ComfyUI-VideoHelperSuite视频工作流加载故障的完整实战指南

高效解决ComfyUI-VideoHelperSuite视频工作流加载故障的完整实战指南 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite ComfyUI-VideoHelperSuite视频工作流加载故障…...

Qwen2.5-0.5B-Instruct应用实战:快速构建智能客服原型

Qwen2.5-0.5B-Instruct应用实战&#xff1a;快速构建智能客服原型 1. 引言&#xff1a;轻量级大模型的智能客服潜力 在数字化转型浪潮中&#xff0c;智能客服已成为企业提升服务效率的关键工具。传统方案往往面临部署成本高、响应速度慢等问题&#xff0c;而轻量级大语言模型…...

DeOldify模型压缩与量化教程:适配边缘计算设备部署

DeOldify模型压缩与量化教程&#xff1a;适配边缘计算设备部署 想让老照片在手机上瞬间焕发色彩吗&#xff1f;DeOldify模型以其出色的黑白照片上色效果而闻名&#xff0c;但它的“体重”对于手机、树莓派这类边缘设备来说&#xff0c;可能有点“超重”了。直接部署原版模型&a…...