pyspark笔记:读取 & 处理csv文件 (pyspark DataFrame)

这篇具有很好参考价值的文章主要介绍了pyspark笔记:读取 & 处理csv文件 (pyspark DataFrame)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pyspark cmd上的命令

1 读取文件

1.1 基本读取方式

pyspark中是惰性操作,所有变换类操作都是延迟计算的,pyspark只是记录了将要对数据集进行的操作

只有需要数据集将数据返回到 Driver 程序时(比如collect,count,show之类),所有已经记录的变换操作才会执行

注意读取出来的格式是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

手动设置输出结果的类型

pyspark读取csv文件,python库整理,笔记,大数据,python

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每个列的名称和数据类型

pyspark读取csv文件,python库整理,笔记,大数据,python

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

select

从DataFrame中选取部分列的数据

pyspark读取csv文件,python库整理,笔记,大数据,python

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

pyspark读取csv文件,python库整理,笔记,大数据,python

filter

条件查询

获得字段LAC是'307'的行

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

dropDuplicates

去重

groupby

pyspark读取csv文件,python库整理,笔记,大数据,python

sort

排序pyspark读取csv文件,python库整理,笔记,大数据,python

first

数据的第一行

pyspark读取csv文件,python库整理,笔记,大数据,python

head

take

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

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

pyspark读取csv文件,python库整理,笔记,大数据,python

pyspark读取csv文件,python库整理,笔记,大数据,python

此时返回的是python的list

limit

类似于head,只不过返回的是pyspark DataFrame

pyspark读取csv文件,python库整理,笔记,大数据,python

count

行数

pyspark读取csv文件,python库整理,笔记,大数据,python

collect

获取所有结点的数据

describe

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

pyspark读取csv文件,python库整理,笔记,大数据,python

withColumn

修改/新增 某一列

pyspark读取csv文件,python库整理,笔记,大数据,python—>pyspark读取csv文件,python库整理,笔记,大数据,python

!!!注:withColumn 后返回一个新的pyspark DataFrame 所以 即使是df=df.withColumn(...) ,且之前已经df.cache过了,withColumn之后的df仍然没有cache

pyspark读取csv文件,python库整理,笔记,大数据,python

withColumnRenamed

某一列重命名

pyspark读取csv文件,python库整理,笔记,大数据,python

pyspark读取csv文件,python库整理,笔记,大数据,python

cast

将列的数据类型转化成指定列

pyspark读取csv文件,python库整理,笔记,大数据,python

show

  显示前多少行(默认20行,修改需要设置参数n)

truncate=False——显示每一行完整的内容

intersect

两个pyspark DATa Frame取交集

pyspark读取csv文件,python库整理,笔记,大数据,python

   

union

两个pyspark Data Frame取并集

union 操作要求两个 DataFrame 具有相同的列数和相同的列名、列顺序

dropna

dropna(how='any'thresh=Nonesubset=None)

  • how——any’ or ‘all,全是nan再删除/只要出现nan就删除
  • thresh:如果有小于等于thresh个非nan值,那么删除(覆盖how)
  • subset——只看哪几列有没有nan

3 stat

corr

两列的相关系数

pyspark读取csv文件,python库整理,笔记,大数据,python

4 创建pyspark DataFrame

4.1 使用Row

from pyspark.sql import Row

data = [
     Row(id=1, name="Alice", age=25),
     Row(id=2, name="Bob", age=30),
     Row(id=3, name="Charlie", age=28)
]

df = spark.createDataFrame(data)

df.show()
'''
+---+---+-------+
|age| id|   name|
+---+---+-------+
| 25|  1|  Alice|
| 30|  2|    Bob|
| 28|  3|Charlie|
+---+---+-------+
'''

4.2 不使用Row

employee_salary = [
    ("Ali", "Sales", 8000),
    ("Bob", "Sales", 7000),
    ("Cindy", "Sales", 7500),
    ("Davd", "Finance", 10000),
    ("Elena", "Sales", 8000),
    ("Fancy", "Finance", 12000),
    ("George", "Finance", 11000),
    ("Haffman", "Marketing", 7000),
    ("Ilaja", "Marketing", 8000),
    ("Joey", "Sales", 9000)]
 
columns= ["name", "department", "salary"]
df = spark.createDataFrame(data = employee_salary, schema = columns)
df.show(truncate=False)

pyspark读取csv文件,python库整理,笔记,大数据,python

参考内容:IBBD.github.io/hadoop/pyspark-csv.md at master · IBBD/IBBD.github.io · GitHub文章来源地址https://www.toymoban.com/news/detail-716081.html

到了这里,关于pyspark笔记:读取 & 处理csv文件 (pyspark DataFrame)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据处理】Pandas读取CSV文件示例及常用方法(入门)

    查看读取前10行数据 2067 向前填充 指定列的插值填充 使用某数据填充指定列的空值 示例: 类似切片 array([‘SE’, ‘cv’, ‘NW’, ‘NE’], dtype=object) 类似数据库查询中的groupby查询 先添加新的一列按月将数据划分 聚合,对指定的列按月划分求平均值等 min 最小值 max 最大值 sum

    2024年02月06日
    浏览(205)
  • 【Python】Python读取CSV文件

    CSV文件是一种常见的数据存储格式,很多人在日常工作中需要使用Python处理CSV文件。Python提供了多种方法来读取CSV文件,包括使用标准库、第三方库和内置函数。本文将介绍多种Python读取CSV文件的方法。 Python标准库中的csv模块提供了方便的读取和写入CSV文件的方法。下面是一

    2024年02月15日
    浏览(94)
  • Python操作写入/读取csv文件

    网络工程师Python数据存储(第1节,CSV文件) 网络自动化运维演进的一个方向大致过程:网络工程师从关注配置制作脚本,完成后上设备刷配置,慢慢地演化为网络工程师关注和确定设备配置的某些重要控制参数,而把制作脚本任务交给Jinja2等去渲染生成,把下发脚本工作交

    2024年02月03日
    浏览(59)
  • Python——csv文件的写入与读取

    CSV文件是一种常见的数据格式,它以逗号分隔不同的字段,每行表示一个数据记录。在Python中,我们可以使用csv模块来读取和写入CSV文件。 在Python中,我们可以使用csv模块的writer对象来写入CSV文件。下面是一个例子: 在上面的例子中,我们首先创建了要写入的数据,它是一

    2024年02月06日
    浏览(56)
  • Python中使用csv读取csv文件中的指定列

    第一种方法,使用next()获取列名,然后使用index定位列名 另一种方法是使用csv.DictReader()函数,将csv文件的每一行读成字典,代码更为简洁。

    2024年02月04日
    浏览(66)
  • Python读取csv、Excel文件生成图表

    简介 本文章介绍了通过读取 csv 或 Excel 文件内容,将其转换为折线图或柱状图的方法,并写入 html 文件中。 目录 1. 读取CSV文件 1.1. 生成折线图 1.1.1. 简单生成图表 1.1.2. 设置折线图格式 1.2. 生成柱状图 1.2.1. 简单生成图表 1.2.2. 设置柱状图格式 2. 读取Excel文件 2.1. 生成折线图

    2024年02月15日
    浏览(51)
  • python读取txt文件内容,写入csv文件中去。

    txt文件中的内容大概是这样的: 2.在图3中,当开关断开时,R1、R2_______(串联/并联),当开关闭合时, 被短路。开关由断开转为闭合时,总电阻 ,总电流_______,通过R2的电流_______(变大/变小/不变)。 3.如图3,当开关闭合时,R2两端电压为3V,若R2=10Ω,则电流为_______。断开

    2023年04月08日
    浏览(64)
  • Python读取CSV文件的几种方法

    话不多说,开干!!! 目录 1. 使用 csv 模块 2.使用 numpy 库 3.使用pandas库 4.使用标准库中的 csv 模块 5.注意事项 (1)项目目录如下图所示: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (

    2024年02月08日
    浏览(56)
  • Python如何读取CSV文件中的特定列

    Python如何读取CSV文件中的特定列 Python是一种功能强大的编程语言,它提供了许多库和工具,用于处理各种类型的数据。在数据科学和数据分析领域,CSV(逗号分隔值)文件是一种常见的数据存储格式。CSV文件由逗号分隔的值组成,每一行表示一个数据记录,每个值代表一个字

    2024年02月08日
    浏览(47)
  • Python读取一个csv文件并转换为Numpy矩阵

    利用pandas库读取,转为numpy矩阵 注意读取csv文件时第一行数据默认不读,因此需要给csv加一行。   运行结果  

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包