0


Spark SQL操作数据源

🙆‍♂️博主:发量不足

欢迎来到本博主主页逛逛

**链接:**发量不足的博客_CSDN博客-hadoop,环境配置,IDEA领域博主https://blog.csdn.net/m0_57781407?type=blog

** Spark SQL可以通过DataFrame和DataSet操作多种数据源,例如(MySql,Hive和Hase等)**

一、操作MySql

①Spark读取MySql

Step1 登录SQL

  1. mysql -u root -pPassword23$ -pPassword23$

Step2 创建数据库,并选择数据库

  1. create database spark;
  2. use spark;

Step3 创建表

  1. Create table person(id int(4),name char(20),age int(4));

Step4 插入数据到表中

  1. Insert into person value(1,’zhangsan’,18);
  2. Insert into person value(2,’lisi’,20);
  3. select * from person;

二、操作HIVE数据库

  • 准备环境

拷贝MySql驱动包到配置文件目录下

  1. cp /opt/module/hive/lib/mysql-connector-java-5.1.46.jar /opt/module/spark/jars/

拷贝Hive-site.xml到spark目录下

  1. ln -s /opt/module/hive/conf/hive-site.xml /opt/module/spark/conf/hive-site.xml

需要先启动hadoop zookeeper和spark

  1. zkServer.sh start(在opt目录下)
  2. start-all.sh(随意目录下)
  3. sbin/start-all.sh(在spark目录下启动)
  4. cd /opt/module/hive/bin/

启动Hive

  1. Hive

  1. create database sparksqltest;

  • 创建表类型

  1. create table if not exists sparksqltest.person(id int,name string,age int);
  2. use sparksqltest;

  • 插入数据

  1. insert into person values(1,"tom",29);
  2. insert into person values(2,"jerry",20);

创建成功person数据表,并在该表中插入了两条数据后

##克隆master会话窗口,执行Spark-Shell****##****

  • Spark SQL 操作Hive数据库

启动Spark

  1. bin/spark-shell --master spark://master:7077,slave1:7077,slave2:7077

查看数仓,切换数据库

  1. spark.sql("use sparksqltest")

查看person表原来的数据

  1. spark.sql("select * from person").show

  1. //添加两条新的数据
  2. //导入库
  3. import java.util.Properties
  4. import org.apache.spark.sql.types._
  5. import org.apache.spark.sql.Row
  6. //创建DataFrame
  7. val personRDD = spark.sparkContext.parallelize(Array("3 zhangsan 22","4 lisi 29")).map(_.split(" "))
  8. val schema = StructType(List(StructField("id",IntegerType,true),StructField("name",StringType,true),StructField("age",IntegerType,true)))
  9. val rowRDD = personRDD.map(p => Row(p(0).toInt,p(1).trim,p(2).toInt))
  10. val personDF = spark.createDataFrame(rowRDD,schema)
  11. //将数据插入
  12. personDF.registerTempTable("t_person")
  13. spark.sql("insert into person select * from t_person")
  14. //显示输入
  15. spark.sql("select * from person").show

** 感谢观看完本文章❤**

标签: spark hive linux

本文转载自: https://blog.csdn.net/m0_57781407/article/details/126782617
版权归原作者 发量不足 所有, 如有侵权,请联系我们删除。

“Spark SQL操作数据源”的评论:

还没有评论