码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spark SQL操作数据源


    🙆‍♂️博主:发量不足

    欢迎来到本博主主页逛逛

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

    目录

    一、操作MySql

    二、操作HIVE数据库

    ①准备环境

    ②创建表类型

    ③插入数据

    ④Spark SQL 操作Hive数据库

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

    一、操作MySql

    ①Spark读取MySql

    Step1 登录SQL

    mysql -u root -pPassword23$ -pPassword23$

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

    1. create database spark;
    2. use spark;

     

    Step3 创建表

    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驱动包到配置文件目录下

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

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

    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

    Hive

    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

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

     

    查看数仓,切换数据库

    spark.sql("use sparksqltest")

    查看person表原来的数据

    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

     

           感谢观看完本文章❤

  • 相关阅读:
    springboot毕设项目超市收银与会员管理系统6l826(java+VUE+Mybatis+Maven+Mysql)
    飞桨(PaddlePaddle)数据加载教程
    语音转文字软件哪个好?快来看看这几个软件
    js处理字符串转数组,数组转字符串
    【es6】教程 class类
    最短路径算法
    Helm安装Kafka集群(保姆级教程)
    python 读取pdf 将每页转成jpg
    XIlinx提供的DDR3 IP与 UG586
    java基本数据类型的分类
  • 原文地址:https://blog.csdn.net/m0_57781407/article/details/126782617
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号