首页 理论教育 如何操作MySQL表:入门必备技能

如何操作MySQL表:入门必备技能

时间:2023-07-02 理论教育 版权反馈
【摘要】:在pom.xml文件中添加MySQL的JAR包依赖如下操作:程序需要导入的类如下:1.主程序及相关代码在项目中新建Object,名字是SparkSQLBookMysql,Spark从MySQL数据库中读取学生信息表、分数表的信息,并进行相关的关联查询。写完代码后,用IntelliJ IDEA将其打成JAR包,JAR包的名字是SparkSQLBOOK.jar,写脚本提交给Spark运行。

如何操作MySQL表:入门必备技能

用Spark SQL操作MySQL数据库的表需要加载mysql-connector-java的JAR包mysql-connector-java-5.1.21.jar。这个JAR包是Spark连接MySQL的数据库驱动包,如已经下载,可以把该JAR包添加到项目的Libraries中;若还没有下载这个包,可以将mySQL-con-nector-java的依赖关系配置到pom-xml中,pom.xml是Naven的Jar依赖关系管理配置文件,可通过pom.xml自动从网上下载这个JAR包。在pom.xml文件中添加MySQL的JAR包依赖如下操作:

程序需要导入的类如下:

1.主程序及相关代码

在项目中新建Object,名字是SparkSQLBookMysql,Spark从MySQL数据库中读取学生信息表、分数表的信息,并进行相关的关联查询。主程序如下:

代码说明:

1)setStudentInfoStructType方法:第一个参数传入sqlContext,第二个参数传入studentIn- foDataFrame,将studentInfoDataFrame进行map转换为Rows格式,通过getStudentInfoStruct-Type构建学生信息的schema;然后通过SQLContext的createDataFrame(row,schema)方法创建DataFrame,即结构化的学生信息DataFrame(studentInfoStructed),基于学生信息Dat-aFrame(studentInfoStructed)可以统计学生ID、学生姓名;性别分别为男、女的学生数量等信息。

2)setScoreStructType方法:第一个参数传入sqlContext,第二个参数传入scoreDat-aFrame,将scoreDataFrame进行map转换为Rows格式,通过getScoreSchema构建分数信息的schema;然后通过SQLContext的createDataFrame(row,schema)方法创建DataFrame,即结构化的分数信息DataFrame(scoreStructed),基于分数信息DataFrame(scoreStructed)可以统计分数大于90分的信息;分数从高到低排名查询;查询分数最高的学生的ID和姓名;分数小于90的分数加5分等操作。

代码说明

1)getStudentInfoStructType方法构建学生信息的schema:创建一个元素类型为StructField的ArrayBuffer数组studentInfoStructFields,其中StructField是一个case class,case class第一个成员变量是名称name,第二个成员变量是数据类型dataType,第三个成员变量是nullable,是否允许字段为空值;第四个成员变量是metadata,是该字段的元数据,如果列的内容未被修改,在selection时元数据应保存,元数据类型如metadata.jsonValue等,metadata默认设置为Metadata.empty。在studentInfoStructFields中依次加入(ID、整型、允许空)、(姓名、字符串型、允许空)、(性别、字符串型、允许空)(生日、字符串型、允许空)的字段,返回StructType(studentInfoStructFields)结构化schema。

2)getScoreSchema方法构建分数信息的schema:创建一个元素类型为StructField的Ar- rayBuffer数组scoreStructFields,在scoreStructFields中依次加入(ID、整型、允许空)、(姓名、字符串型、允许空)、(分数、浮点数型、允许空)的字段,返回StructType(score- StructFields)结构化schema。

写完代码后,用IntelliJ IDEA将其打成JAR包,JAR包的名字是SparkSQLBOOK.jar,写脚本提交给Spark运行。具体的写脚本和打包过程在此不再评述,程序提交的脚本如下:

提交程序时把该脚本文件放到Spark的bin目录下。

2.相关操作示例

下面是查询相关的系列示例。

1)示例一:查询表StudentInfo和Score中的内容。

本示例用于查询表StudentInfo和Score中的内容,代码如下:

输出结果如下所示。

2)示例二:Select部分字段。

结果如下:

3)示例三:统计男女数量。(www.xing528.com)

程序输出结果如下:

4)示例四:随机分成两组。

程序输出结果如下:

5)示例五:对表进行inner join。

程序输出结果如下:

6)示例六:取出Score大于90分的信息。

程序输出结果如下:

7)示例七:分数从高到低排名。

程序输出结果如下:

8)示例八:统计分数的top 3。

程序输出结果如下:

9)示例九:查询最高分。

程序输出结果如下:

10)示例十:求平均分数。

程序输出结果如下:

11)示例十一:把Score小于90的分数加5分。

程序输出结果如下:

12)示例十二:向表studentInfo中插入数据。

程序输出结果如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈