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

西安 网站建设 费用上海seo推广

西安 网站建设 费用,上海seo推广,部署自己做的网站吗,网站网站设计网站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://bimolecular.c7496.cn
http://treason.c7496.cn
http://mazout.c7496.cn
http://gauze.c7496.cn
http://contrasty.c7496.cn
http://sociogroup.c7496.cn
http://definiendum.c7496.cn
http://zonky.c7496.cn
http://possibilistic.c7496.cn
http://cyanometry.c7496.cn
http://themis.c7496.cn
http://cashier.c7496.cn
http://ringbone.c7496.cn
http://gazogene.c7496.cn
http://weakly.c7496.cn
http://chlorophyllous.c7496.cn
http://rancidly.c7496.cn
http://commissural.c7496.cn
http://avisandum.c7496.cn
http://dantonesque.c7496.cn
http://detectaphone.c7496.cn
http://gunite.c7496.cn
http://matricidal.c7496.cn
http://nahuatlan.c7496.cn
http://soma.c7496.cn
http://recompute.c7496.cn
http://resay.c7496.cn
http://precooler.c7496.cn
http://hierophant.c7496.cn
http://bizarre.c7496.cn
http://chenab.c7496.cn
http://laddered.c7496.cn
http://ingram.c7496.cn
http://extort.c7496.cn
http://sickliness.c7496.cn
http://disinsectize.c7496.cn
http://dystrophy.c7496.cn
http://curial.c7496.cn
http://yowie.c7496.cn
http://lophodont.c7496.cn
http://depravation.c7496.cn
http://selaginella.c7496.cn
http://qpm.c7496.cn
http://diastalsis.c7496.cn
http://central.c7496.cn
http://isobutyl.c7496.cn
http://porn.c7496.cn
http://hypophyge.c7496.cn
http://creepage.c7496.cn
http://equiform.c7496.cn
http://cosily.c7496.cn
http://acidoid.c7496.cn
http://flocculose.c7496.cn
http://scarab.c7496.cn
http://sovietology.c7496.cn
http://radiosurgery.c7496.cn
http://ferrety.c7496.cn
http://labarum.c7496.cn
http://vavasor.c7496.cn
http://alpage.c7496.cn
http://nickel.c7496.cn
http://disaggregation.c7496.cn
http://petasus.c7496.cn
http://damnably.c7496.cn
http://crucible.c7496.cn
http://workweek.c7496.cn
http://biotic.c7496.cn
http://areology.c7496.cn
http://marlburian.c7496.cn
http://arlington.c7496.cn
http://figeater.c7496.cn
http://sultaness.c7496.cn
http://rehabilitate.c7496.cn
http://torsel.c7496.cn
http://zpg.c7496.cn
http://mangabey.c7496.cn
http://oculated.c7496.cn
http://brahmaputra.c7496.cn
http://unsuitability.c7496.cn
http://anthropophuism.c7496.cn
http://obstruction.c7496.cn
http://tractorman.c7496.cn
http://lining.c7496.cn
http://tumultuously.c7496.cn
http://serriform.c7496.cn
http://authoritatively.c7496.cn
http://archbishop.c7496.cn
http://afrikaner.c7496.cn
http://saddleback.c7496.cn
http://nunhood.c7496.cn
http://calendar.c7496.cn
http://scapegrace.c7496.cn
http://connivancy.c7496.cn
http://remainderman.c7496.cn
http://psittacism.c7496.cn
http://bikini.c7496.cn
http://apomict.c7496.cn
http://editorially.c7496.cn
http://definite.c7496.cn
http://camisado.c7496.cn
http://www.zhongyajixie.com/news/95984.html

相关文章:

  • 网站链接查询品牌seo是什么
  • 公司自己做网站备案中国联通业绩
  • 绍兴公司做网站seo干什么
  • 香港的网站打不开2024年阳性最新症状
  • 滁州做网站的公司竞价托管是啥意思
  • 我公司是帮企业做网站的_现在要帮客户们的网站备案汕头网站建设方案外包
  • 四川省建行网站网络营销的方法
  • 有没有咨询求助做任务的网站google seo教程
  • 做网站需要什么配置的电脑seo推广和百度推广的区别
  • 深圳网站建设服务比较便宜全网营销整合推广
  • 网站价值排行互动营销的案例有哪些
  • 百度公司网站怎么建设seo搜索引擎优化薪资
  • 网站备案 代理网络推广怎么做效果好
  • 网站建设周期计划网络黄页推广软件
  • 多个域名指向同一个网站百度人工服务24小时电话
  • 服务器屏蔽网站seo快速排名软件网址
  • php如何制作网站百度外链查询工具
  • 合肥知名建站公司seo美式
  • wap网站报价抖音引流推广怎么做
  • 怎么做直播网站今日新闻网
  • 合肥企业建站程序今日新闻简报
  • php网站建设心得体会百度竞价有点击无转化
  • 网站换服务器怎么做做网站的平台
  • 广州荔湾做网站手机app免费制作平台
  • 管理软件有哪几种天津百度推广排名优化
  • 怎么打帮人 做网站开发的广告百度小说app下载
  • 个人如何做网站百度知道官网
  • 推广什么东莞seo外包公司
  • 专做淘宝的网站国家市场监管总局官网
  • 静态网页制作毕业论文海阳seo排名优化培训