首页 > 其他分享 >寒假学习(21)

寒假学习(21)

时间:2024-02-24 21:35:00浏览次数:26  
标签:21 SparkSession DataFrame 查询 学习 寒假 SQL spark Spark

学习spark就绕不开spark sql,今天我就学习了spark的数据库操作:

 

  1. 创建 SparkSession:

    • 在 Spark 中使用 Spark SQL 时,首先需要创建一个 SparkSession 对象,它是 Spark SQL 的入口点。可以通过 SparkSession.builder().appName("example").getOrCreate() 来创建 SparkSession。
  2. 读取数据:

    • 可以使用 SparkSession 对象的 read 方法来读取外部数据源,如文本文件、JSON 文件、Parquet 文件、关系型数据库等。例如,可以使用 spark.read.csv("path/to/file.csv") 来读取 CSV 文件。
  3. 创建 DataFrame:

    • 通过读取数据源或将已有的 RDD 转换为 DataFrame,可以创建一个包含结构化数据的 DataFrame 对象。DataFrame 提供了丰富的 API 来进行数据操作和分析。
  4. 执行 SQL 查询:

    • 可以通过 SparkSession 对象的 sql 方法执行 SQL 查询。例如,可以使用 spark.sql("SELECT * FROM table") 来查询 DataFrame 中的数据。
  5. DataFrame 操作:

    • DataFrame 提供了多种操作方法来处理数据,如选择列、过滤数据、分组聚合等。常见的操作包括 select()filter()groupBy()agg() 等。
  6. 注册临时视图:

    • 可以通过调用 DataFrame 对象的 createOrReplaceTempView 方法将 DataFrame 注册为一个临时视图,从而可以通过 SQL 查询来操作该视图。
  7. UDF(User-Defined Functions):

    • 可以通过注册 UDF 来扩展 Spark SQL 的功能。UDF 允许用户自定义函数并在 SQL 查询中使用。可以通过 spark.udf.register("my_udf", myFunction) 来注册 UDF。
  8. 优化器和执行计划:

    • Spark SQL 使用 Catalyst 优化器来对 SQL 查询进行优化,生成最优的执行计划。可以通过 explain() 方法查看执行计划,帮助优化查询性能。
  9. DataFrame 写入:

    • 可以使用 DataFrame 对象的 write 方法将数据写入外部数据源,如保存为 Parquet 文件、CSV 文件等。例如,可以使用 df.write.parquet("path/to/output") 将 DataFrame 写入为 Parquet 文件。

标签:21,SparkSession,DataFrame,查询,学习,寒假,SQL,spark,Spark
From: https://www.cnblogs.com/zjsdbk/p/18031617

相关文章

  • 寒假学习(19)
    今天我开始学习spark基础知识,首先从他的基本概念和理论开始入手: RDD(ResilientDistributedDataset):RDD是Spark提供的一个抽象数据类型,代表一个可以分布式计算的数据集合。它是Spark中最基本的数据结构,具有以下特点:分区(Partition):RDD可以分成多个分区,每个分区可以在集群......
  • 2024牛客寒假算法基础集训营4个人补题题解(B、E)
    B、左右互博不能操作的情况有且仅有所有石子堆的石子个数只有1的时候,因此不管途中怎么操作,让所有石子堆都变成1的总操作次数是确定的。即假设一共有\(n\)堆石子,石子总数为\(sum\),总操作次数为\((sum-n)\)次。因此当\((sum-n)\)%\(2=0\)时一定在sweet操作完(或没有操作)后gui无法......
  • 寒假学习(20)
    昨天我已经安装好spark,今天进入学习阶段,首先学习spark的一些基础编程:Spark应用程序:Spark应用程序由一个驱动器程序(DriverProgram)和多个执行器(Executors)组成。驱动器程序负责在集群上运行主程序并创建Spark上下文,而执行器负责在工作节点上执行任务。Spark上下文(Spar......
  • 后缀数组学习笔记 应用篇
    一些后缀数组的应用。利用\(sa\)和\(rk\)数组这类题目通常需要发掘一些性质,转化为求串的字典序最小/大后缀或长度固定的子串。P3809【模板】后缀排序后缀数组板子。P6095[JSOI2015]串分割二分答案串的排名。CF1923FShrink-Reverse转化为求长度为\(len\)的字典......
  • 寒假集训小结
    难度加码、只点不帮——吕教练寒假集训总共十五天左右,年前七天,年后八天。可以说,从去年训到今年。我这个弱鸡是高一零基础,在九月份才刚接触到oi,所以这次寒假集训是我第一次长训。(脱离文化课的困扰还是非常nice的),而且别的不说,就是全身心投入到竞赛上的感觉也是非常棒的!年......
  • Linux学习-day2
    1.解释传统运维是什么;解释云计算运维是什么;区别在哪?传统运维需要去机房,与机器打交道,需要承受机房的低温、高噪音环境;云计算运维相比传统运维实现了由实转需的变化,坐在办公室,对云服务器进行维护,对程序和软件进行安装部署,以及日常的监控和维护。2.解释你理解的服务器机房。......
  • 痛定思痛,好好做人,从头过一遍PyTorch框架(一)(1.深度学习简介、2.预备知识)
    现在是2024年2月24日,13:59,从研一就开始断断续续说要过一遍框架,到现在博一下学期,还一直拖着呢,拖延症太可怕啦,决定好好做人,不拖了,就从现在开始,好好过一遍,呜呜呜呜呜呜呜呜,(罪该万死)。看的教程是:《动手学深度学习》(PyTorch版),是把李沐老师的《动手学深度学习》原书中的MXNet实现改......
  • 2024牛客寒假算法基础集训营3
    2024牛客寒假算法基础集训营3A 智乃与瞩目狸猫、幸运水母、月宫龙虾题意给出若干组字符串,判断无视大小写,判断首字母是否相同思路如果首字母相同,则直接用\(==\)比较即可,如果首字母只有大小写的区别,则ASCII码值相差\(32\)代码/*******************************|Author:......
  • 机器学习
    【Coursera版本学习目录】 https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes(一)监督学习(线性回归、逻辑回归、神经网络、支持向量机SVM)。(二)无监督学习:聚类K-meas算法、主成分分析PCA,异常检测(主要用于无监督,某些角度又类似监督学习),推荐系统(基于内容的推荐、协同过滤—基......
  • 状态机模式的初步了解及学习心得体会
    这种模式,解决的是,程序在不同状态切换及增加新的状态时,需要改很多代码的问题。它能用简单的逻辑控制程序从一个状态切换为其他被允许的状态,我昨天在网上看的一个例子,一个播放器,有播放,暂停,关闭的状态。处于关闭状态时,只能响应播放的代码;处于暂停状态时,能响应关闭和播放代码;处于播放......