- 博客(56)
- 收藏
- 关注
原创 spark sql基本操作
它允许用户使用标准的 SQL 语法来查询数据,并且可以无缝地与 Spark 的其他功能(如 DataFrame、Dataset 和 RDD)结合使用。Spark SQL 支持标准的 SQL 语法,允许用户使用 SQL 查询语句来操作 DataFrame 或 Dataset。SparkSession 是 Spark SQL 的入口点,用于创建 DataFrame 和执行 SQL 查询。以下是一个完整的 Spark SQL 示例代码,展示了如何读取数据、注册视图、执行 SQL 查询并保存结果。
2025-05-13 15:37:42
361
原创 hadoop中创建MySQL新数据库数据表
在Hadoop环境中创建MySQL数据库和数据表,通常需要通过MySQL命令行工具来完成,而不是直接在Hadoop中操作。将MySQL JDBC驱动包(如mysql-connector-java-8.0.23.jar)复制到Hive的lib目录。可以使用USE命令切换到目标数据库,然后使用CREATE TABLE命令创建表。此命令会在mydb数据库中创建一个名为mytable的表,包含id和name两个字段。登录MySQL后,使用CREATE DATABASE命令创建一个新的数据库。-- 查看所有数据库。
2025-05-13 15:36:40
379
原创 在scala中sparkSQL读入csv文件
option("inferSchema", "true") // 自动推断数据类型(如 Int、Double).option("nullValue", "NA") // 将 "NA" 识别为空值。.master("local[*]") // 单机模式,集群改为 "yarn" 等。.option("quote", "\"") // 文本字段引号(默认双引号).option("escape", "\"") // 转义符(处理嵌套引号).option("header", "true") // 首行作为表头。
2025-05-13 15:31:19
302
原创 在scala中sparkSQL连接masql并添加新数据
val driverClass = "com.mysql.cj.jdbc.Driver" // MySQL 8+ 驱动类(5.x 用 com.mysql.jdbc.Driver)- 若报 ClassNotFoundException ,检查驱动是否正确部署(通过 --jars 参数或放入 $SPARK_HOME/jars/ )。mode = "append", // 写入模式:append(追加)、overwrite(覆盖)等。- append :数据追加到现有表(表需存在)。
2025-05-13 15:29:08
439
原创 spark Mysql数据库配置
下载驱动:从 Maven 仓库 下载与 MySQL 服务端版本匹配的 mysql-connector-java-X.X.XX.jar (如 MySQL 8.0 对应 8.0.33 版本)。- MySQL 5.x 驱动类名为 com.mysql.jdbc.Driver ,8.x 及以上为 com.mysql.cj.jdbc.Driver。prop.setProperty("driver", "com.mysql.cj.jdbc.Driver") // MySQL 8+ 驱动类名。
2025-05-13 15:27:48
269
原创 Spark,IDEA编写Maven项目
在IDEA中选择 Create New Project > Maven > 勾选Create from archetype > 选择 maven-archetype-quickstart ,点击下一步。-- 如com.example.SparkApp -->-- Spark SQL(按需添加其他模块,如spark-streaming) -->-- Maven打包插件(可选,用于生成可执行JAR) -->-- 开发时使用local模式,无需打包进最终JAR -->-- Scala编译插件 -->
2025-05-12 11:20:27
1033
原创 Spark,集群搭建之Yarn模式
Yarn全局资源需在 yarn-site.xml 中配置(如 yarn.nodemanager.resource.memory-mb )。spark.eventLog.dir hdfs://nameservice1/spark-logs # HDFS日志路径(需提前创建)- 官网下载对应Hadoop版本的Spark(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 通过 --executor-memory 和 --executor-cores 控制单个Executor资源。
2025-05-12 11:19:06
417
原创 Spark,集群搭建-Standalone
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 替换为实际路径。export SPARK_MASTER_IP=master_hostname # 主节点主机名/IP。- 官网下载对应版本(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 主节点Web界面: http://master_ip:8080 ,查看从节点是否在线。ssh-copy-id slave1 # 替换为从节点主机名/IP。2. 分发Spark到从节点。
2025-05-12 11:18:12
404
原创 Spark,RDD中的转换算子
在根目录下可见out111文件,文件打开后可以看到,word2.txt文件内单词被拆分。对数字1-10进行过滤,过滤出偶数。对数字1-10进行乘除,*2。filatMap算子。
2025-05-12 11:17:06
274
原创 Spark,在shell中运行RDD程序
在根目录下可见out111文件,文件打开后可以看到,word2.txt文件内单词被拆分。// 将元组的value按照key来分组,对所有的value执行聚合操作(相加)在hdfs中/wcinput中创建一个文件:word2.txt在里面写几个单词。// 将单词转换为元组对象,key是单词,value是数字1。// 将单词进行切割,得到一个存储全部单词的RDD。// 收集RDD的数据并打印输出结果。// 将结果储存在out111中。// 读取文件,得到RDD。按住ctrl+D退出。
2025-05-12 11:14:00
195
原创 Spark,Idea中编写Spark程序 1
命令为:[root@hadoop100 sbin]# spark-submit --class WordCount_online --master yarn /opt/module/original-untitled-1.0-SNAPSHOT.jar /wcinput /output1。// 写一个spark程序,统计input目录下所有文本文件中单词的词频。// 将所有分区的数据合并成一个分区。// 把结果保存在output下。// 配置 Spark 应用程序。// 读取目录下的所有文本文件。
2025-05-12 11:11:01
608
原创 Spark,所用几个网页地址
YARN的ResourceManager网址:http://hadoop101:8088。History Server网址:192.168.56.100:18080。HDFS的NameNode网址:http://hadoop100:9870。2. MapReduce:计算。1. HDFS:存储。3. YARN:调度。
2025-05-12 11:07:51
263
原创 如何在idea中写spark程序
打开 File > Settings > Build, Execution, Deployment > Application Servers ,添加 Spark 路径(指向解压后的 spark-3.3.2-bin-hadoop3 目录)。- 从 Spark 官网 下载对应版本的预编译包(如 spark-3.3.2-bin-hadoop3 ),解压到本地(如 C:\spark )。- 本地调试失败:确保 setMaster("local[*]") 正确,且文件路径为本地绝对路径。
2025-05-12 11:05:13
268
原创 如何在idea中写spark程序
打开 File > Settings > Build, Execution, Deployment > Application Servers ,添加 Spark 路径(指向解压后的 spark-3.3.2-bin-hadoop3 目录)。- 从 Spark 官网 下载对应版本的预编译包(如 spark-3.3.2-bin-hadoop3 ),解压到本地(如 C:\spark )。- 本地调试失败:确保 setMaster("local[*]") 正确,且文件路径为本地绝对路径。
2025-05-12 11:03:42
255
原创 如何搭建spark yarn 模式的集群集群
配置调优:根据服务器资源调整 yarn.nodemanager.resource.memory-mb (YARN 内存)和 Spark 任务参数(如 --executor-memory )。- hadoop-env.sh :指定 JDK 路径(如 export JAVA_HOME=/usr/java/jdk1.8.0_301 )。echo "export SPARK_MASTER_IP=主节点IP" >> /opt/spark/conf/spark-env.sh。
2025-05-12 11:02:26
392
原创 虚拟机IP配置
1、创建虚拟机 首先在这里创建虚拟机,将不必要的虚拟机硬件设备移除掉,留下了这些,将网络适配器选择为NAT模式,桥接模式就自动连接自己主机的网络IP了。如何将VM虚拟机的IP设置为固定IP并与主机处于同一局域网段。首先,将虚拟机的网络连接模式设置为桥接模式,然后在虚拟机系统中修改IP地址、网关和DNS服务器地址,最后运行命令检查IP是否修改成功并测试网络连接。如何在模拟器中实现单窗口单IP,通过使用代理工具和设置进程匹配,每个虚拟机窗口都可以使用不同的网络,从而达到单窗口单IP的效果。
2025-03-03 20:09:58
515
原创 spark 虚拟机基本命令(2)
会把aaa、这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa)会把文件的最尾部的内容显示在屏幕上,并且不断刷新,只要文件有更新,就可以看到最新的文件内容。命令是:tar -cvf test.tar 1.txt 2.txt 3.txt。示例1:把1.txt,2.txt,3.txt压缩到test.tar文件中。格式:tar -cvf 压缩包.tar 文件1 文件2 文件3。-c 建立一个压缩文件,把多个文件或文件夹压缩到一个新的文件中。功能:压缩或解压文件。
2025-03-03 19:22:10
466
原创 spark 虚拟机(Linux)基本命令
波浪线,当前用户的home目录,比如root用户home目录是/root。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。相对路径:当前相对当前工作目录开始的路径,会随着当前路径变化而变化。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。mkdir -p:创建目录,如果父级目录不存在,就建立一个新目录。删除文件无需用户确如 rm -f +文件名 (慎用!ll -a 命令,显示当前的目录下的文件,包括隐藏文件。ll 命令,用来显示当前的目录下的文件。
2025-03-03 19:20:54
129
原创 spark vi基本使用
1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:new file。d(一个小d)加←删除左侧一个单词,d(一个小d)加→删除右侧一个单词。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。2.如果文件已存在,此时就打开这个文件,进入命令模式。底线命令模式:以:开始,通常用于文件的保存和退出。2.nyy(n+两个小y)复制当前行往下n行内容。2.ndd(n+两个小d)用来删除当前行往下n行。nyy(n+两个小y)复制当前行往下n行内容。1.yy(两个 y)复制光标所在行的内容。
2025-03-03 19:19:03
157
原创 如何安装vm 和centos
创建虚拟机:打开VMware Workstation,点击“创建新的虚拟机”,选择“自定义(高级)”,按提示点击“下一步”;配置虚拟机:点击“编辑虚拟机设置”,在“CD/DVD”选项中,勾选“启动时连接”,选择“使用ISO映像文件”,浏览找到下载的CentOS镜像文件,点击“确定”。输入许可证密钥:安装完成后,点击“许可证”,输入有效的许可证密钥,点击“输入”,也可选择试用。选择安装位置:可使用默认位置,也可点击“更改”选择其他路径,之后点击“下一步”。开始安装:点击“开始安装”,等待安装完成。
2025-03-03 19:15:35
180
原创 vi的基本使用
Vi编辑器是最常用的Linux系统文本编辑工具,可以帮助我们通过一系列命令对文本文件进行编辑操作,具有命令行模式、插入模式、底行模式这三种工作模式,通常我们通过Vi编辑器对一个文件进行操作,需要在这三种模式之间来回切换。Vi编辑器初始进入命令行模式,无法直接对文本进行编辑,所以我们要按i键进入到插入模式里,在这个模式,我们可以对文本内容任意更改。该模式下,光标位于屏幕底行,用户可以进行文件的保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。按下键盘上的 i 键,进入插入模式。
2025-02-24 20:13:36
308
原创 Linux基本命令
4)用man命令查看ls命令 的使用手册 5)在当前目录下,创建测试目录test .。6)利用ls命令列出文件和目录,确认test目录创建成功. 7)进入test目录,利用pwd查看当前工作目录.。12)用less命令分屏查看文件profile的内容.(注:使用/字符串,可以在less中查找特定的字符)11)用ls命令以长格的形式列出当前目录下的所有文件,注意比较每个文件的长度和创建时间的不同。16)用less命令查看文件lnsprofile的内容,显示什么?熟悉Linx操作环境。
2025-02-24 20:11:39
197
原创 Spark(1)
特点:提高处理能力:通过将任务分散到多个节点上并行计算,能够大大提高数据处理的速度和效率,从而可以在短时间内处理海量数据,满足大数据时代对数据处理的实时性和高效性要求。1.硬件资源有限:单机系统的计算能力、存储容量和内存空间都受限于单台计算机的硬件配置。1.无法处理大规模数据:随着业务的发展和数据量的增长,单机系统很快就会遇到存储和处理能力的瓶颈,无法应对海量数据的存储和分析需求。3.应用场景简单:主要用于个人办公、简单的游戏娱乐或小型企业的基本业务处理,如文字处理、单机游戏、简单的库存管理等。
2025-02-24 19:05:47
220
原创 scala图书管理系统
文件:books.txt ,users.txt ,borrow_records.txt。9,你当像鸟飞往你的山,塔拉·韦斯特弗,true。8,哈利·波特与魔法石,J.K.罗琳,true。3,百年孤独,加西亚·马尔克斯,true。4,小王子,圣埃克苏佩里,true。10,邓小平时代,傅高义,true。1,人性的弱点,卡耐基,true。2,理想国,柏拉图,true。5,红楼梦,曹雪芹,true。6,围城,钱钟书,true。软件包【service】7,活着,余华,true。软件包【modeis】
2025-01-01 20:41:23
234
原创 scala图书管理系统 【modeis】软件包
var returnDate: Option[String] = None // 归还日期。borrowDate: String, // 借书日期。userName: String, // 借书人。bookName: String, // 书名。s"编号:$id \t $name \t $author, $availableStr"bookID:Int, // 书ID。role: String // 普通用户,管理员。// id, 书名,作者,available:是否可外借。
2025-01-01 20:39:32
155
原创 scala图书管理系统【service】软件包
case _ => books.filter(b => b.name.contains(query) || b.author.contains(query)) // 有条件,就过滤。// 写借阅记录回文件 borrowRecordDAO.saveBorrowRecords(records)case "" => books // 没有条件,就返回全部。// 根据图书的ID,查询图书,判断图书是否存在。// 借阅图书 更新这本书的状态。// 普通用户,借阅图书。// 查询所有的图书。
2025-01-01 20:38:25
419
原创 scala图书管理系统【ui】软件包
println(s"欢迎管理员:${user.username},来到我的图书管理系统, 请选择")val query = readLine("请输入查询关键字(书名,作者):").trim。println(s"欢迎用户:${user.username},来到我的图书管理系统, 请选择")println("=======查询图书的结果:=======")case "2" => println("查询借阅图书")case "2" => println("查询图书")println("输入的图书ID无效")
2025-01-01 20:35:48
664
原创 scala语言的函数实现
在实际项目中,合理利用Scala的函数式编程特性,可以显著提升开发效率和代码质量,是每一位Scala开发者值得掌握的技能。在编程的世界里,函数是构建软件的基本单元之一,它不仅体现了代码的逻辑和结构,更是程序设计思想的具体体现。本文将深入探讨Scala语言中函数的实现细节,包括匿名函数、高阶函数、偏应用函数等高级概念,并通过具体示例展示它们如何提升代码的可读性和性能。这是函数式编程的核心特性之一,Scala中的map, filter, reduce等方法都是高阶函数的典型应用。一、Scala中的函数基础。
2025-01-01 20:19:01
352
原创 10个Scala的使用小技巧
可以在Scala项目中直接使用Java类库,也可以将Scala代码编译后供Java项目使用。例如,一个Java框架可以轻松地集成Scala编写的代码模块。例如,可以使用flatten方法将嵌套的集合扁平化为一个层次的集合。当编写递归函数且递归调用是函数的最后一个操作时,可以利用尾递归优化性能。例如,可以定义自己版本的加法操作符。可以使用type关键字定义类型别名,这使得复杂的类型可以使用一个简化的名称在代码中表示。可以定义包对象来存放包级别的属性和方法,而不是把这些内容分散在不同的类或者单例对象中。
2025-01-01 20:17:12
331
原创 scala的隐藏对象 隐试对象
要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类。格式:在class 的前面,添加implicit。格式:就是在对象前面加一个 implicit。隐式类 == 一个类 + 一个隐式转换函数。引入别的程序内的隐式转换,计算。作用:就是给函数当默认值!
2024-12-19 09:55:27
129
原创 scala的异常
A. try 的中文是试一试,catch是捕获,finally是最后的。关于try catch finally 的说法正确的是( D )C. 把是否有异常,finally 中的代码一定会执行。} finally { //可选 (即可写可不写)在scala中,1/0会导致如下什么异常( C )无论是否有异常发送,都会做的事情 //可选。B. 把可能会出现异常的代码写在 try 中。异常如果不处理,会导致整个程序崩溃!D. catch 中不能获取具体异常信息。发生异常之后的处理逻辑。异常:不是正常的情况。
2024-12-19 09:30:25
141
原创 Scala的隐式函数
需求:让字符串增加一个功能:isPhone() 检查当前字符串是否是一个合法的手机号。1. 在函数的默认参数的前面补充关键字:implicit。隐式值:能够自己设置参数默认值,而不是在代码中固定写死。2. 在定义变量的前面 补充关键字:implicit。3. 调用函数式,不加()
2024-12-09 08:02:09
289
原创 Scala的IDEA环境搭建
6.安装Scala插件:在IDEA中,通过“File”->“Settings”->“Plugins”搜索并安装“Scala”插件。如果您在在线搜索时遇到问题,可以尝试从IDEA的安装目录中的“plugins”文件夹手动安装。7.配置项目结构:在IDEA中,右键点击项目名称,选择“New”->“Folder”,创建一个名为“src”的文件夹。然后在“src”文件夹中创建一个名为“scala”的文件夹,并设置为源码目录。在项目向导中,选择“Scala”作为项目类型,并按照提示完成项目的初始化。
2024-12-05 11:32:14
354
原创 Scala内建控制
例如,try { f = new FileReader("input.txt") } catch { case ex: FileNotFoundException => // 处理文件不存在的异常 } finally { f.close() }。例如,firstArg match { case "1" => println("A") }。例如,if (a > 0) println(a + " > 0")。for循环:for (i <- 1 to 10) println(i)。
2024-12-05 11:30:50
192
原创 Scala的内核构造器
在探讨Scala的内核构造器时,我们首先需要区分主构造器与辅助构造器的概念。主构造器是与类定义紧密交织在一起的,它通过类名后面的参数列表来定义,并执行类定义中的所有语句。而辅助构造器则是通过this关键字定义,用于辅助主构造器完成对象的创建和初始化,它们可以有多个,并且每个辅助构造器的第一行代码必须直接或间接调用主构造器。主构造器的特点:声明直接跟在类名之后,包含了类的初始化逻辑。执行类定义中的所有语句,包括函数调用和表达式。如果主构造器无参数,小括号可以省略。辅助构造器的特点:名称必须为t
2024-12-05 11:29:36
169
原创 Scala学习记录 访问权限 控制方法作业域 package包
通过上述要点,我们可以了解到Scala中的访问权限和控制方法作用域是管理代码结构和安全的关键要素,而包的使用则是组织代码和避免命名冲突的有效手段。伴生对象和包对象的特性进一步增强了Scala的面向对象编程能力和代码的组织性。通过合理地使用访问权限修饰符,可以控制类和方法的访问范围,从而增强代码的封装性和安全性1。private[this]修饰的成员只能在定义它的类的同一对象实例内部的方法中访问1。Scala中的控制方法作用域与访问权限紧密相关,它决定了类和方法的可见性和可访问性。
2024-12-05 11:28:37
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人