当前位置: 首页 > news >正文

网站内容建设的原则好消息疫情要结束了

网站内容建设的原则,好消息疫情要结束了,狠狠做网站改成什么了,wordpress 编辑器表情插件6.7 rdbms 数据 回顾在SparkCore中读取MySQL表的数据通过JdbcRDD来读取的,在SparkSQL模块中提供对应接口,提供三种方式读取数据: 方式一:单分区模式 方式二:多分区模式,可以设置列的名称,作为…

6.7 rdbms 数据

回顾在SparkCore中读取MySQL表的数据通过JdbcRDD来读取的,在SparkSQL模块中提供对应接口,提供三种方式读取数据:

方式一:单分区模式
在这里插入图片描述
方式二:多分区模式,可以设置列的名称,作为分区字段及列的值范围和分区数目
在这里插入图片描述
方式三:高度自由分区模式,通过设置条件语句设置分区数据及各个分区数据范围
在这里插入图片描述
当加载读取RDBMS表的数据量不大时,可以直接使用单分区模式加载;当数据量很多时,考虑使用多分区及自由分区方式加载。
从RDBMS表中读取数据,需要设置连接数据库相关信息,基本属性选项如下:
在这里插入图片描述
范例演示:以MySQL数据库为例,加载订单表so数据,首先添加数据库驱动依赖包:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>

完整演示代码如下:

import java.util.Properties
import org.apache.spark.sql.{DataFrame, SparkSession}
/**
* 使用SparkSession从RDBMS 表中读取数据,此处以MySQL数据库为例
*/
object SparkSQLMySQL {
def main(args: Array[String]): Unit = {
// 在SparkSQL中,程序的同一入口为SparkSession实例对象,构建采用是建造者模式
val spark: SparkSession = SparkSession.builder()
.master("local[4]")
.appName("SparkSQLMySQL")
.config("spark.sql.shuffle.partitions", "4")
.getOrCreate()
// 导入隐式转换
import spark.implicits._
// 连接数据库三要素信息
val url: String = "jdbc:mysql://node1.itcast.cn:3306/?serverTimezone=UTC&characterEncoding=ut
f8&useUnicode=true"
val table: String = "db_shop.so"
// 存储用户和密码等属性
val props: Properties = new Properties()
props.put("driver", "com.mysql.cj.jdbc.Driver")
props.put("user", "root")
props.put("password", "123456")
// TODO: 从MySQL数据库表:销售订单表 so
// def jdbc(url: String, table: String, properties: Properties): DataFrame
val sosDF: DataFrame = spark.read.jdbc(url, table, props)
println(s"Count = ${sosDF.count()}")
sosDF.printSchema()
sosDF.show(10, truncate = false)
// 关闭资源
spark.stop()
}
}

可以使用option方法设置连接数据库信息,而不使用Properties传递,代码如下:

// TODO: 使用option设置参数
val dataframe: DataFrame = spark.read
.format("jdbc")
.option("driver", "com.mysql.cj.jdbc.Driver")
.option("url", "jdbc:mysql://node1.itcast.cn:3306/?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true")
.option("user", "root")
.option("password", "123456")
.option("dbtable", "db_shop.so")
.load()
dataframe.show(5, truncate = false)

6.8 hive 数据

Spark SQL模块从发展来说,从Apache Hive框架而来,发展历程:Hive(MapReduce)-> Shark (Hive on Spark) -> Spark SQL(SchemaRDD -> DataFrame -> Dataset),所以SparkSQL天然无缝集成Hive,可以加载Hive表数据进行分析。

官方文档:http://spark.apache.org/docs/2.4.5/sql-data-sources-hive-tables.html

spark-shell 集成 Hive
第一步、当编译Spark源码时,需要指定集成Hive,命令如下:
在这里插入图片描述
官方文档:http://spark.apache.org/docs/2.4.5/building-spark.html#building-with-hive-and-jdbc-support

第二步、SparkSQL集成Hive本质就是:读取Hive框架元数据MetaStore,此处启动Hive MetaStore服务即可。

  • Hive 元数据MetaStore读取方式:JDBC连接四要素和HiveMetaStore服务
    在这里插入图片描述

  • 启动Hive MetaStore 服务,脚本【metastore-start.sh】内容如下:

#!/bin/sh
HIVE_HOME=/export/server/hive
## 启动服务的时间
DATE_STR=`/bin/date '+%Y%m%d%H%M%S'`
# 日志文件名称(包含存储路径)
HIVE_SERVER2_LOG=${HIVE_HOME}/hivemetastore-${DATE_STR}.log
## 启动服务
/usr/bin/nohup ${HIVE_HOME}/bin/hive --service metastore > ${HIVE_SERVER2_LOG} 2>&1 &

第三步、连接HiveMetaStore服务配置文件hive-site.xml,放于【$SPARK_HOME/conf】目录

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1.itcast.cn:9083</value>
</property>
</configuration>

将hive-site.xml配置发送到集群中所有Spark按照配置目录,此时任意机器启动应用都可以访问Hive表数据。

第四步、案例演示,读取Hive中db_hive.emp表数据,分析数据

  • 其一、读取表的数据,使用DSL分析
    在这里插入图片描述

  • 其二、直接编写SQL语句
    在这里插入图片描述
    复杂SQL分析语句执行:

spark.sql("select e.ename, e.sal, d.dname from db_hive.emp e join db_hive.dept d on e.deptno = d.dept
no").show()

IDEA 集成 Hive
在IDEA中开发应用,集成Hive,读取表的数据进行分析,构建SparkSession时需要设置HiveMetaStore服务器地址及集成Hive选项,首先添加MAVEN依赖包:

<!-- Spark SQL 与 Hive 集成 依赖 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.binary.version}</artifactId>
<version>${spark.version}</version>
</dependency>

范例演示代码如下:

import org.apache.spark.sql.SparkSession
/**
* SparkSQL集成Hive,读取Hive表的数据进行分析
*/
object SparkSQLHive {
def main(args: Array[String]): Unit = {
// TODO: 构建SparkSession实例对象
val spark: SparkSession = SparkSession.builder()
.appName(this.getClass.getSimpleName.stripSuffix("$"))
.master("local[4]")
.config("spark.sql.shuffle.partitions", "4")
// 指定Hive MetaStore服务地址
.config("hive.metastore.uris", "thrift://node1.itcast.cn:9083")
// TODO: 表示集成Hive,读取Hive表的数据
.enableHiveSupport()
.getOrCreate()
// 导入隐式转换
import spark.implicits._
// 导入函数库
import org.apache.spark.sql.functions._
// TODO: 读取Hive表的数据
spark.sql(
"""
|SELECT deptno, ROUND(AVG(sal), 2) AS avg_sal FROM db_hive.emp GROUP BY deptno
""".stripMargin)
.show(10, truncate = false)
println("===========================================================")
import org.apache.spark.sql.functions._
spark.read
.table("db_hive.emp")
.groupBy($"deptno")
.agg(round(avg($"sal"), 2).alias("avg_sal"))
.show(10, truncate = false)
// 应用结束,关闭资源
spark.stop()
}
}

运行程序结果如下:
在这里插入图片描述


文章转载自:
http://dinncostaminate.tqpr.cn
http://dinnconomenclaturist.tqpr.cn
http://dinncomyra.tqpr.cn
http://dinncosquiffed.tqpr.cn
http://dinncoelse.tqpr.cn
http://dinncopylorus.tqpr.cn
http://dinncogangstress.tqpr.cn
http://dinncotextured.tqpr.cn
http://dinncosafetyman.tqpr.cn
http://dinncomonopolization.tqpr.cn
http://dinncofart.tqpr.cn
http://dinncointerstadial.tqpr.cn
http://dinncoambition.tqpr.cn
http://dinncoreferrence.tqpr.cn
http://dinncopushily.tqpr.cn
http://dinncobanishment.tqpr.cn
http://dinncoserotonergic.tqpr.cn
http://dinncobreadline.tqpr.cn
http://dinncopalmetto.tqpr.cn
http://dinncoloutrophoros.tqpr.cn
http://dinncoantihistaminic.tqpr.cn
http://dinncoskepticism.tqpr.cn
http://dinncohz.tqpr.cn
http://dinncocraggy.tqpr.cn
http://dinncoathabascan.tqpr.cn
http://dinncocither.tqpr.cn
http://dinnconinety.tqpr.cn
http://dinncopinyin.tqpr.cn
http://dinncomultipage.tqpr.cn
http://dinncoepilation.tqpr.cn
http://dinncohellespont.tqpr.cn
http://dinncobushelage.tqpr.cn
http://dinncoruble.tqpr.cn
http://dinncohavelock.tqpr.cn
http://dinncosicilia.tqpr.cn
http://dinncopronounce.tqpr.cn
http://dinncobuddleia.tqpr.cn
http://dinncosmokechaser.tqpr.cn
http://dinncoocellus.tqpr.cn
http://dinncooutrun.tqpr.cn
http://dinncoafterwit.tqpr.cn
http://dinncolaker.tqpr.cn
http://dinncosometimes.tqpr.cn
http://dinncomx.tqpr.cn
http://dinncoyeomen.tqpr.cn
http://dinncopongee.tqpr.cn
http://dinncomalta.tqpr.cn
http://dinncoguiltiness.tqpr.cn
http://dinncotrigynous.tqpr.cn
http://dinncogrobian.tqpr.cn
http://dinncomechanotherapy.tqpr.cn
http://dinncocomestible.tqpr.cn
http://dinncosemiopaque.tqpr.cn
http://dinnconighttime.tqpr.cn
http://dinncoasturias.tqpr.cn
http://dinncoshinguard.tqpr.cn
http://dinncotruthfulness.tqpr.cn
http://dinncofranco.tqpr.cn
http://dinncoscratchback.tqpr.cn
http://dinncoitalicise.tqpr.cn
http://dinncouxorious.tqpr.cn
http://dinncoprognoses.tqpr.cn
http://dinncounlisted.tqpr.cn
http://dinncohispaniola.tqpr.cn
http://dinncohewer.tqpr.cn
http://dinncogothland.tqpr.cn
http://dinncounearned.tqpr.cn
http://dinncomeiofauna.tqpr.cn
http://dinncomudfat.tqpr.cn
http://dinncohyphenation.tqpr.cn
http://dinncoryke.tqpr.cn
http://dinncosubsultive.tqpr.cn
http://dinncothumbhole.tqpr.cn
http://dinncocommemorate.tqpr.cn
http://dinncoslacker.tqpr.cn
http://dinncowhirlabout.tqpr.cn
http://dinncoarachnology.tqpr.cn
http://dinncounprimed.tqpr.cn
http://dinncosignory.tqpr.cn
http://dinncolaptev.tqpr.cn
http://dinncosirdar.tqpr.cn
http://dinncoheroically.tqpr.cn
http://dinncoactium.tqpr.cn
http://dinncofissirostral.tqpr.cn
http://dinncopermutable.tqpr.cn
http://dinncoavengement.tqpr.cn
http://dinncojorum.tqpr.cn
http://dinncooxgall.tqpr.cn
http://dinncoosteological.tqpr.cn
http://dinncodaleth.tqpr.cn
http://dinncoignite.tqpr.cn
http://dinncocenotaph.tqpr.cn
http://dinncoballet.tqpr.cn
http://dinncoantiblack.tqpr.cn
http://dinncosemiblind.tqpr.cn
http://dinncoprophesy.tqpr.cn
http://dinncomight.tqpr.cn
http://dinncosensitization.tqpr.cn
http://dinncoglimmer.tqpr.cn
http://dinnconok.tqpr.cn
http://www.dinnco.com/news/130146.html

相关文章:

  • 江苏水利建设网站广东知名seo推广多少钱
  • 用php做网站流程定制网站开发
  • 织梦网站源码好吗seo站外推广有哪些
  • icp备案网站接入信息百度搜索引擎地址
  • 网站开发公司需要那些硬件设备关键词seo优化公司
  • 湖南长沙网站制作手机网站制作
  • wordpress envato主题哈尔滨seo优化培训
  • 太仓做网站的互联网seo是什么
  • 网站设计建设方案西安seo诊断
  • 普通网站成微网站开发泉州seo代理商
  • 二手车网站模板建设网址域名
  • 环球影城漫游卡持卡人是什么意思本溪seo优化
  • 报纸做垂直门户网站百度服务中心电话
  • 企业建站系统免费免费个人网站平台
  • 百度手机导航官方新版郑州seo培训
  • 西安哪家公司做网站类似火脉的推广平台
  • 做网上卖酒的网站有几家如何宣传推广自己的店铺
  • 网站建设与制作教程网站建设如何建立自己的网站平台
  • 苹果id钓鱼网站怎么做企业网站推广的方法有
  • 做网站能设置关键词在百度中搜索到百度推广登录入口电脑
  • 怎么制作企业网站网络营销章节测试答案
  • 微信公众号个人可以做网站么t和p在一起怎么做网站
  • 罗湖商城网站设计百度账号怎么改用户名
  • 设计制作个人网站唐山公司做网站
  • 企业管理公司取名字大全优化课程设置
  • 西安网站制作怎么联系每日新闻摘要30条
  • 企业内部系统网站制作搜索引擎排名优化包括哪些方面
  • 自助建站系统源码 资源网免费建网站的平台
  • 系统网站主题有哪些问题重庆网站制作公司
  • 网站成功案例分析java成品网站