spark-sql
九指码农
生活不止眼前的苟且。
展开
-
Spark-SQL处理小文件问题
一、小文件产生的原因1、在使用spark sql处理数据的过程中,如果有shuffle产生,依赖于spark.sql.shuffle.partitions配置信息,默认为200,当处理的数据量比较大时,通常会把该值调大,以避免单个分区处理的数据太大出现异常或者拖慢整个任务的执行时间。2、如果没有shuffle产生,文件的数量依赖于数据源的文件数量以及文件是否可切分等特性决定任务的并发度即tas...原创 2020-04-03 23:14:57 · 3536 阅读 · 2 评论 -
Spark-SQL adaptive 自适应框架
一、自适应框架能解决什么问题1、目前SparkSQL中reduce阶段的task个数取决于固定参数spark.sql.shuffle.partition(默认值200),一个作业一旦设置了该参数,它运行过程中的所有阶段的reduce个数都是同一个值。而对于不同的作业,以及同一个作业内的不同reduce阶段,实际的数据量大小可能相差很大,比如reduce阶段要处理的数据可能是10MB,也有可能是...原创 2020-04-03 22:56:06 · 5769 阅读 · 3 评论 -
spark 排序实现原理 RangePartitioner
sprak Core中比较常用的排序方法sortBy和sortKByKey,这是一个shuffle类算法子,宽依赖,出发DAGSchedular划分Stage,那么他们排序的原理是啥呢?第一步Stage0:分区采样Sample,创建RangePartitioner,先对输入的数据的key做采样,来估算Key的分布,然后按照指定的排序切分range,尽量让每个partition对应的range里...原创 2019-07-17 18:23:38 · 1140 阅读 · 1 评论 -
Hive统计每日新增及其二日和三十日回访比例
数据如下:一、求每日新增方法:每日新增即用户第一次访问,那么此时按照用户的id为key做分组,求他访问的最大时间和最小时间(天);如果最大时间等于最小时间,那么说明用户是第一次访问,否则不是;那么总的来说就是按照用户的最小时间统计即可select min_date,count(distinct user_id) as per_day_newfrom( select u...原创 2019-07-30 09:19:47 · 1716 阅读 · 0 评论 -
spark-sql读取hive挂载alluxio
Alluxio是一个基于内存的分布式文件系统,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。Alluxio的前身为Tachyon 在大数据领域,最底层的是分布式文件系统,如Amazon S3、Apache HDFS等,而较高层的应用则是一些分布式计算框架,如Spark、MapReduce、Flink等,这些分布式框架原创 2017-05-04 07:59:07 · 1600 阅读 · 0 评论 -
spark读取oracle的
刚开始使用spark-sql,首先看了一部分的源码。然后开始着手程序的编写。 在spark中使用jdbc: 在 Spark-env.sh 文件中加入: export SPARK_CLASSPATH=/path/mysql-connector-java-5.1.34.jar 任务提交时加入: spark-submit –master spark://master:7077 –jars ojd原创 2016-05-05 15:55:18 · 11547 阅读 · 1 评论 -
spark-jion优化
Join是SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。 SparkSQL作为大数据领域的SQL实现,自然也对Join操作做了不少优化,今天主要看一下在SparkSQL中对于Join,常见的3种实现。 SparkSQL的3种Join实现大家知道,在数据库的常见模型中(比如星型模型或者雪花模转载 2017-03-24 01:02:38 · 519 阅读 · 0 评论 -
spark-mysql中文过滤问题
在从mysql中读取数据(包含字段值问中文) 例如当使用使用select id from test where name =’杨’的时候出现了错误,结果为零object sparksql { def main(args: Array[String]) { val sc = new SparkContext( new SparkConf().setAppName(“sparksql”原创 2016-05-26 22:26:31 · 1295 阅读 · 0 评论 -
spark找共同朋友的问题
数据格式如下: “A ,B ,C, D, E, F”, “B ,A ,C ,D ,E”, “C,A,B,E”, “D,A,B,E”, “E,A,B,C,D”, “F,A” 第一字母表示本人,其他是他的朋友,找出有共同朋友的人,和共同朋友是谁 直接上代码:val rdd = sc.makeRDD( Array( "A ,B ,C原创 2016-10-20 11:34:29 · 874 阅读 · 0 评论