码农知识堂 - 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

     

           感谢观看完本文章❤

  • 相关阅读:
    Spring Data JPA与Mybatis的对比
    Eigen::Matrix 排序
    基于android的购物APP系统设计与实现
    AWS S3 基本概念
    03.3线性回归的简洁实现
    碳排放权、碳交易日度数据&分部门、能源碳排放面板数据
    03.2 线性回归的从零开始实现
    关于一个图算法的应用
    HotReload for unity支持的代码修改
    详解VQVAE:Neural Discrete Representation Learning
  • 原文地址:https://blog.csdn.net/m0_57781407/article/details/126782617
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号