spark hive数据导出到mysql 以及和 mysql进行表连接查询

数据准备

data/department.txt

1	技术部
2	运营部
3	市场部
4	财务部

data/employee.txt

1	1	方海亮	30
2	1	何胜强	35
3	1	林洪敏	32
4	2	丁泽林	27
5	2	李元元	25
6	3	王小飞	28
7	4	刘亦亭	31

bin/spark-sql

create database if not exists hadoop14;
use hadoop14;
create table department (
id int, name string
)
row format delimited fields terminated by '\t';
;
create table employee (
id int, department int, name string, age int
)
row format delimited fields terminated by '\t';
;
load data local inpath 'data/department.txt' into table department;
load data local inpath 'data/employee.txt' into table employee;

mysql连接准备工作

    val properties = new Properties()
    properties.put("user","hive_test")
    properties.put("password", "123456")
    val connectUrl = "jdbc:mysql://mustafa-PC:3306/hive_test"
    val targetTable = "department"

hive保存到mysql

    spark
      .read
      .table("hadoop14.department")
      .write
      .mode(SaveMode.Overwrite)
      .jdbc(connectUrl, targetTable, properties)

hive和mysql表连接

    val df: DataFrame = spark.read.jdbc(connectUrl, targetTable, properties)
    df.createOrReplaceTempView("department")

    var resultDf = spark.sql("select e.name as employee_name, e.age as employee_age, d.name as department_name from hadoop14.employee e join department d on e.department = d.id")

保存操作结果

resultDf.cache()
resultDf.write.mode(SaveMode.Overwrite).saveAsTable("hadoop14.employee_result")
    resultDf.write.format("json").format("parquet").mode(SaveMode.Overwrite).save("/user/mustafa/employee_result2")

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据处理流程 ⼤数据处理流程 1. 数据处理流程 ⽹站流量⽇志数据分析是⼀个纯粹的数据分析项⽬,其整体流程基本上就是依据数据的处理流程进⾏。有以下⼏个⼤的步骤: 1.1 数据采集 数据采集概念,⽬前⾏业会有两种解释:⼀是数据从⽆到有的过程(web服务器打印的⽇志、⾃定义采集的⽇志等)叫做数据采集; 另⼀⽅⾯也有把通过使⽤Flume等⼯具把数据采集到指定位置的这个过程叫做数据采集。 关于具体含义要结合语境具体分析,明⽩语境中具体含义即可。 1.2 数据预处理 通过mapreduce程序对采集到的原始⽇志数据进⾏预处理,⽐如清洗,格式整理,滤除脏数据等,并且梳理成点击流模型数据。 1.3 数据⼊库 将预处理之后的数据导⼊到HIVE仓库中相应的库和中。 1.4 数据分析 项⽬的核⼼内容,即根据需求开发ETL分析语句,得出各种统计结果。 1.5 数据展现 将分析所得数据进⾏数据可视化,⼀般通过图进⾏展⽰。 扩展: 1、数据处理主要技术 Sqoop:作为⼀款开源的离线数据传输⼯具,主要⽤于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以 将⼀个关系数据库中数据导⼊Hadoop的HDFS中,也可以将HDFS中的数据导⼊关系型数据库中。 Flume:实时数据采集的⼀个开源框架,它是Cloudera提供的⼀个⾼可⽤⽤的、⾼可靠、分布式的海量⽇志采集、聚合和传输的系 统。⽬前已经是Apache的顶级⼦项⽬。使⽤Flume可以收集诸如⽇志、时间等数据并将这些数据集中存储起来供下游使⽤(尤其是数据流 框架,例如Storm)。和Flume类似的另⼀个框架是Scribe(FaceBook开源的⽇志收集系统,它为⽇志的分布式收集、统⼀处理提供⼀个 可扩展的、⾼容错的简单⽅案) Kafka:通常来说Flume采集数据的速度和下游处理的速度通常不同步,因此实时平台架构都会⽤⼀个消息中间件来缓冲,⽽这⽅⾯ 最为流⾏和应⽤最为⼴泛的⽆疑是Kafka。它是由LinkedIn开发的⼀个分布式消息系统,以其可以⽔平扩展和⾼吞吐率⽽被⼴泛使⽤。⽬前 主流的开源分布式处理系统(如Storm和Spark等)都⽀持与Kafka 集成。Kafka是⼀个基于分布式的消息发布-订阅系统,特点是速度快、 可扩展且持久。与其他消息发布-订阅系统类似,Kafka可在主题中保存消息的信息。⽣产者向主题写⼊数据,消费者从主题中读取数据。作 为⼀个分布式的、分区的、低延迟的、冗余的⽇志提交服务。和Kafka类似消息中间件开源产品还包括RabbiMQ、ActiveMQ、ZeroMQ 等。 MapReduce是Google公司的核⼼计算模型,它将运⾏于⼤规模集群上的复杂并⾏计算过程⾼度抽象为两个函数:map和reduce。 MapReduce最伟⼤之处在于其将处理⼤数据的能⼒赋予了普通开发⼈员,以⾄于普通开发⼈员即使不会任何的分布式编程知识,也能将⾃ ⼰的程序运⾏在分布式系统上处理海量数据Hive:MapReduce将处理⼤数据的能⼒赋予了普通开发⼈员,⽽Hive进⼀步将处理和分析⼤数据的能⼒赋予了实际的数据使⽤⼈员 (数据开发⼯程师、数据分析师、算法⼯程师、和业务分析⼈员)。Hive是由Facebook开发并贡献给Hadoop开源社区的,是⼀个建⽴在 Hadoop体系结构上的⼀层SQL抽象。Hive提供了⼀些对Hadoop⽂件中数据集进⾏处理、查询、分析的⼯具。它⽀持类似于传统RDBMS 的SQL语⾔的查询语⾔,⼀帮助那些熟悉SQL的⽤户处理和查询Hodoop在的数据,该查询语⾔称为Hive SQL。Hive SQL实际上先被 SQL解析器解析,然后被Hive框架解析成⼀个MapReduce可执⾏计划,并按照该计划⽣产MapReduce任务后交给Hadoop集群处理。 Spark:尽管MapReduce和Hive能完成海量数据的⼤多数批处理⼯作,并且在打数据时代称为企业⼤数据处理的⾸选技术,但是其 数据查询的延迟⼀直被诟病,⽽且也⾮常不适合迭代计算和DAG(有限⽆环图)计算。由于Spark具有可伸缩、基于内存计算能特点,且可以 直接读写Hadoop上任何格式的数据,较好地满⾜了数据即时查询和迭代分析的需求,因此变得越来越流⾏。Spark是UC Berkeley AMP Lab(加州⼤学伯克利分校的 AMP实验室)所开源的类Hadoop MapReduce的通⽤并⾏框架,它拥有Hadoop MapReduce所具有的优 点,但不同MapReduce的是,Job中间输出结果可以保存在内存中,从⽽不需要再读写HDFS ,因此能更好适⽤于数据挖掘和机器学习等 需要迭代的MapReduce算法。Spark也提供类Live的SQL接⼝,即Spark S
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 知识点介绍、代码演示、逻辑分析、灵活举例、使用图形的方式详细演示代码的流程和细节、整合企业级实战案例,全面讲解并突出重点,让学习也变成一种快乐。 课程亮点 1,知识体系完备,阶段学习者都能学有所获。 2,综合各种方式演示代码、分析逻辑,生动形象,化繁为简,讲解通俗易懂。 3,结合工作实践及分析应用,培养解决实际问题的能力。 4,使用综合案例来加强重点知识,用切实的应用场景提升编程能力,充分巩固各个知识点的应用。 5,整个课程的讲解思路是先提出问题,然后分析问题,并编程解决解题。 适用人群 1、对大数据感兴趣的在校生及应届毕业生。 2、对目前职业有进一步提升要求,希望从事大数据行业高薪工作的在职人员。 3、对大数据行业感兴趣的相关人员。 课程内容 第一章、Spark 基础环境 1.课程安排说明 2.Spark 框架概述 3.快速入门 4.Standalone集群及HA 5.Spark 应用开发入门 6.Spark 应用提交 7.Spark on YARN 8.应用部署模式DeployMode 第二章、SparkCore 模块 1.RDD 概念及特性 2.RDD 创建 3.RDD 函数及使用 4.RDD 持久化 5.案例:SogouQ日志分析 6.RDD Checkpoint 7.外部数据源(HBase和MySQL) 8.广播变量和累加器 9.Spark 内核调度 10.Spark 并行度 第三章、SparkSQL 模块 1.快速入门:词频统计 2.SparkSQL 概述 3.DataFrame 4.RDD与DataFrame转换 5.数据分析SQL和DSL 6.案例:电影评分数据分析 7.DataSet 8.外部数据源Exeternal DataSource 9.集成Hive 10.自定义函数UDF 11.分布式SQL引擎(spakr-sql和Spark ThriftServer) 12.Catalyst 优化器 第四章、离线综合实战 1.综合实战概述(需求、调研、业务) 2.环境搭建(大数据环境和应用开发环境) 3.项目初始化(工具类和属性文件) 4.广告数据ETL 5.Spark 分布式缓存 6.业务报分析 7.应用执行部署 8.Oozie和Hue集成调度Spark 应用 第五章、SparkStreaming 模块 1.Streaming流式应用概述 2.Streaming 计算模式 3.SparkStreaming计算思路 4.入门案例 5.SparkStreaming工作原理 6.DStream及函数 7.集成Kafka 8.案例:百度搜索风云榜(实时ELT、窗口Window和状态State) 9.SparkStreaming Checkpoint 10.消费Kafka偏移量管理 第六章、StructuredStreaming模块 1.StructuredStreaming 概述(核心设计和编程模型) 2.入门案例:WordCount 3.输入源InputSources 4.Streaming Query 设置 5.输出终端OutputSink 6.集成Kafka(Source和Sink) 7.案例:物联网设备数据分析 8.事件时间窗口分析 9.Streaming Deduplication数据去重 10.Continues Processing连续流处理 第七章、实时综合实战 1.综合实战概述(需求、环境搭建和项目初始化) 2.模拟交易订单数据 3.数据实时ETL存储Kafka 4.实时应用停止 5.实时增量存储(存储HBase和Elasticsearch) 6.实时订单报(Kafka-StructuredStreaming-Redis) 7.实时应用性能调优(数据本地性、反压机制、动态资源和日志管理)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fanghailiang2016

扔个包子砸我一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值