![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
数据孤岛
这个作者很懒,什么都没留下…
展开
-
Spark关联外部Hive
1、Spark自带内置的hive,我们一般直接删除metastore_db,另一个生成的warehouse也删掉(没创建表就没有)2、将mysql下的mysql-connector-java-5.1.38.jar放到spark的jar文件夹下3、将hive的hive-site.xml文件放到spark的conf文件夹下4、bin/spark-shell启动,查询数据库信息5、创建一个表scala> spark.sql("create table xxx(id Int)")导入数原创 2020-10-31 17:24:40 · 685 阅读 · 0 评论 -
Spark——Partition的分区规则和分区数
Partition的分区规则以下代码以foreachPartition为例1、 范围分区(RangePartitioner)RangePartitioner基于抽样的思想来对数据进行分区object Spark04 { def main(args: Array[String]): Unit = { //1.创建SparkConf并设置App名称,使用本地模式开启两核 val conf = new SparkConf().setMaster("local[2]").setAppNa原创 2020-09-22 18:51:43 · 3879 阅读 · 0 评论 -
Spark——广播变量(调优策略)
广播变量用来高效分发较大的对象,是一种调优策略广播变量是每个Executor的内存中,只传一个变量副本,而不是对每一个task都传输一次大变量。也就是向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。普通RDD操作object JoinTest { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("原创 2020-10-30 11:24:11 · 263 阅读 · 0 评论 -
Spark——累加器的理解
如果没有累加器看下面代码,我定义一个sum,想把K-V类型的RDD算子的value值都加在一起,我把这个算子分成了两个区结果foreach循环后发现sum的值在foreach内确实是在累加的,但是在foreach外sum确是0object FailTest { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("test原创 2020-10-30 10:03:13 · 337 阅读 · 0 评论 -
Spark——RDD创建
1 什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。分布式数据集RDD是只读的、分区记录的集合,每个分区分布在集群的不同节点上RDD并不存储真正的数据,只是对数据和操作的描述弹性RDD默认存放在内存中,当内存不足,Spark自动将RDD写入磁盘容错性根据数据血统,可以自动从节点失败中恢复分区简单的解释RDD是将数据项拆分为多个分区原创 2020-10-28 19:58:41 · 206 阅读 · 1 评论