databricks spark基本使用方法和讲解

2024-04-16 05:12

本文主要是介绍databricks spark基本使用方法和讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

databricks spark基本使用方法

文章目录

  • databricks spark基本使用方法
    • spark dataframe和pandas dataframe区别
      • 概念
      • 小例子:感受下语法差异!
    • 基本使用
      • 生成序列数据
      • 显示数据
      • 查看rdd的分区数和作用
      • 对列进行操作

spark dataframe和pandas dataframe区别

概念

Spark 的 DataFrame 和 pandas 的 DataFrame 在概念上相似,都是用来处理表格数据的,但它们在设计、实现和使用场景上有显著的差异:

Spark DataFrame
1.分布式计算
2.数据存储在集群的多个节点上
3.懒执行(lazy execution)(如调用 .show().collect() 时)才实际执行。

pandas DataFrame
1.单机内存中的数据处理
2.操作(如添加列、过滤等)会立即在 DataFrame 上执行并返回结果。

小例子:感受下语法差异!

为了展现差异,下面同样的意思,让两者分别code,感受下语法的差异

spark dataframe
(一般在databricks上面不用建立session,环境已经帮你配置好了)

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("Example").getOrCreate()
df = spark.read.csv("data.csv")
df.na.fill(value=0)  # 填充数字型缺失值为0
df.na.drop()         # 删除任何包含缺失值的行from pyspark.sql.functions import to_date
df.withColumn('new_date', to_date(df['date'], 'yyyy-MM-dd'))from pyspark.sql.functions import udf
from pyspark.sql.types import IntegerType
def square(x):return x * x
square_udf = udf(square, IntegerType())
df.withColumn('squared', square_udf(df['number']))

pandas dataframe

import pandas as pd
df = pd.read_csv("data.csv")
df.fillna(value=0)   # 填充数字型缺失值为0
df.dropna()          # 删除任何包含缺失值的行
df['new_date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
df['squared'] = df['number'].apply(lambda x: x * x)

基本使用

生成序列数据

df1 = spark.range(2, 10, 2)
df2 = spark.range(2, 10, 4)

生成的数据的index名字叫做“id",这里的df1为
2,4,6,8
df2的数据为
2,6
因此将两者join的话

df3 = df1.join(df2, ["id"])

df3的结果为2,6

显示数据

df1.show(10)

不指定的话,默认会展示20条数据

查看rdd的分区数和作用

df3.rdd.getNumPartitions()

作用:

  1. 并行度评估:RDD的分区数决定了Spark作业的并行度。每个分区通常由一个核心(core)处理,如果分区数太少,可能无法充分利用集群的所有资源;如果分区数过多,则可能因为调度和管理开销而降低性能。

  2. 性能优化:了解当前的分区数可以帮助你决定是否需要重新分区。通过调整分区数(使用repartition()coalesce()方法),来优化作业的性能

对列进行操作

from pyspark.sql.functions import spark_partition_id
df3.withColumn("partition_id", spark_partition_id()).show()

使用spark_partition_id函数可以帮助获得数据所在的分区的id。这里用withColumn之后返回了一个新的对象(rdd不可变,因此每次的操作实际上都会生成新的对象),并且调用show(),把这个对象使用掉了。如果希望是把分区id加上并且存下来,需要写:

from pyspark.sql.functions import spark_partition_id
df3 = df3.withColumn("partition_id", spark_partition_id())

这里,withColumn实际上是DataFrame API的一部分,而不是直接操作RDD。当在DataFrame上使用withColumn方法时,是在定义一个转换操作,这个操作会在DataFrame的执行计划中被添加。虽然DataFrame是建立在RDD之上的,所有DataFrame的操作最终都会转换成对RDD的操作,但从用户的角度看,withColumn是一个更高级别的抽象,专门用于结构化数据的操作。使用DataFrame API可以使代码更易于理解和维护,并且可以利用Spark的优化引擎(如Catalyst优化器和Tungsten执行引擎)来提高性能。

对列的数据进行统计

df2.withColumn("partition_id", spark_partition_id()              ).groupBy("partition_id").count().show()

这篇关于databricks spark基本使用方法和讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907862

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers