首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HyperLogLog函数在Spark中的高级应用

本文,我们将介绍 spark-alchemy这个开源库中的 HyperLogLog 这一个高级功能,并且探讨它是如何解决大数据中数据聚合的问题。首先,我们先讨论一下这其中面临的挑战。...另外,2~8倍的性能提升在预聚合所带来的上千倍的性能提升面前也是微不足道的,那我们能做什么?...中 Finalize 计算 aggregate sketch 中的 distinct count 近似值 值得注意的是,HLL sketch 是可再聚合的:在 reduce 过程合并之后的结果就是一个...Spark-Alchemy 简介:HLL Native 函数 由于 Spark 没有提供相应功能,Swoop开源了高性能的 HLL native 函数工具包,作为 spark-alchemy项目的一部分...这样的架构可以带来巨大的受益: 99+%的数据仅通过 Spark 进行管理,没有重复 在预聚合阶段,99+%的数据通过 Spark 处理 交互式查询响应时间大幅缩短,处理的数据量也大幅较少 总结 总结一下

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Spark篇】---Spark中Action算子

    一、前述 Action类算子也是一类算子(函数)叫做行动算子,如foreach,collect,count等。Transformations类算子是延迟执行,Action类算子是触发执行。...返回行数 package com.spark.spark.actions; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD...一般在使用过滤算子或者一些能返回少量数据集的算子后 package com.spark.spark.actions; import java.util.List; import org.apache.spark.SparkConf...org.apache.spark.api.java.function.Function; /** * collect * 将计算的结果作为集合拉回到driver端,一般在使用过滤算子或者一些能返回少量数据集的算子后...class Operator_collect { public static void main(String[] args) { /** * SparkConf对象中主要设置

    1K20

    详解spark开窗函数

    1.什么是窗口函数 窗口函数(Window functions)又称分析函数或开窗函数,它允许你在不改变原始行的情况下,对一组相关的行(称为“窗口”)进行计算和分析。...函数:指具体使用什么函数,支持哪些函数见【函数列表】 空值选项(可选) over:代表开窗,固定格式; 分组方式(可选) 排序方式(可选)(上面语法来源于spark官方文档,语法表述为必选项,实际应用为可选...结果是在分区排序中,当前行之前或等于当前行的行数加一。该值将在序列中产生间隔。 https://sparkfunctions.com/rank DENSE_RANK 计算一组值中某个值的排名。...https://sparkfunctions.com/row_number 2.2 分析函数 分析函数 描述 具体使用方式 CUME_DIST 计算一个值在分区中相对于所有值的位置 https://sparkfunctions.com...所以保证排序唯一十分重要; 4.3 排序中的空值 可以在排序时指定空值是排在最前面还是最后面,测试数据中没有空值,仅写SQL了 --样例SQL select name, dept,

    5010

    Spark函数讲解: combineByKey

    combineByKey()是最为常用的基于键进行聚合的函数。大多数基于键聚合的函数都是用它实现的。...该方法的定义如下所示: def combineByKey[C]( //在找到给定分区中第一次碰到的key(在RDD元素中)时被调用。此方法为这个key初始化一个累加器。...理解了这三个函数,就可以很好地理解combineByKey。 2、原理 由于combineByKey()会遍历分区中的所有元素,因此每个元素的键要么还没有遇到过,要么就和之前的某个元素的键相同。...需要注意的是,这一过程会在每个分区中第一次出现各个键时发生,而不是在整个RDD中第一次出现一个键时发生。...Refer: [1] Spark函数讲解:combineByKey http://bihell.com/2017/03/14/Combiner-in-Pair-RDDs-combineByKey/ [2

    3.4K61

    【容错篇】WAL在Spark Streaming中的应用【容错篇】WAL在Spark Streaming中的应用

    【容错篇】WAL在Spark Streaming中的应用 WAL 即 write ahead log(预写日志),是在 1.2 版本中就添加的特性。...WAL在 driver 端的应用 何时创建 用于写日志的对象 writeAheadLogOption: WriteAheadLog 在 StreamingContext 中的 JobScheduler...中的 ReceiverTracker 的 ReceivedBlockTracker 构造函数中被创建,ReceivedBlockTracker 用于管理已接收到的 blocks 信息。...何时写BlockAdditionEvent 在揭开Spark Streaming神秘面纱② - ReceiverTracker 与数据导入 一文中,已经介绍过当 Receiver 接收到数据后会调用...比如MEMORY_ONLY只会在内存中存一份,MEMORY_AND_DISK会在内存和磁盘上各存一份等 启用 WAL:在StorageLevel指定的存储的基础上,写一份到 WAL 中。

    1.2K30

    Spark 在Yarn上运行Spark应用程序

    部署模式 在 YARN 中,每个应用程序实例都有一个 ApplicationMaster 进程,该进程是为该应用程序启动的第一个容器。应用程序负责从 ResourceManager 上请求资源。...1.1 Cluster部署模式 在 Cluster 模式下,Spark Driver 在集群主机上的 ApplicationMaster 上运行,它负责向 YARN 申请资源,并监督作业的运行状况。...需要用户输入的 Spark 应用程序(如spark-shell和pyspark)需要 Spark Driver 在启动 Spark 应用程序的 Client 进程内运行。...1.2 Client部署模式 在 Client 模式下,Spark Driver 在提交作业的主机上运行。ApplicationMaster 仅负责从 YARN 中请求 Executor 容器。...在 Cluster 模式下终止 spark-submit 进程不会像在 Client 模式下那样终止 Spark 应用程序。

    1.8K10

    【Spark篇】---Spark中Shuffle文件的寻址

    一、前述 Spark中Shuffle文件的寻址是一个文件底层的管理机制,所以还是有必要了解一下的。 二、架构图 ?...三、基本概念: 1) MapOutputTracker MapOutputTracker是Spark架构中的一个模块,是一个主从架构。管理磁盘小文件的地址。...2) BlockManager BlockManager块管理者,是Spark架构中的一个模块,也是一个主从架构。 BlockManagerMaster,主对象,存在于Driver中。...无论在Driver端的BlockManager还是在Excutor端的BlockManager都含有四个对象: ① DiskStore:负责磁盘的管理。 ② MemoryStore:负责内存的管理。...c) 在reduce task执行之前,会通过Excutor中MapOutPutTrackerWorker向Driver端的MapOutputTrackerMaster获取磁盘小文件的地址。

    78450

    Spark SQLHive实用函数大全

    本篇文章主要介绍Spark SQL/Hive中常用的函数,主要分为字符串函数、JSON函数、时间函数、开窗函数以及在编写Spark SQL代码应用时实用的函数算子五个模块。...., strN -- SparkSQL select concat('Spark', 'SQL'); 2. concat_ws 在拼接的字符串中间添加某种分隔符:concat_ws(sep, [str...select unix_timestamp("2020-12-30", "yyyy-MM-dd"); 2)from_unixtime 将unix epoch(1970-01-01 00:00:00 UTC)中的秒数转换为以给定格式表示当前系统时区中该时刻的时间戳的字符串...SparkSQL函数算子 以上函数都是可以直接在SQL中应用的。...那么如果是在Spark SQL的DataFrame/DataSet的算子中调用,可以参考DataFrame/DataSet的算子以及org.apache.spark.sql.functions.

    5K30

    spark、hive中窗口函数实现原理复盘

    窗口函数在工作中经常用到,在面试中也会经常被问到,你知道它背后的实现原理吗? 这篇文章从一次业务中遇到的问题出发,深入聊了聊hsql中窗口函数的数据流转原理,在文章最后针对这个问题给出解决方案。 ?...非广告 rank int --这次搜索下商品的位置,比如第一个广告商品就是1,后面的依次2,3,4... )ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 在该表中插入以下数据...window函数部分 windows函数部分就是所要在窗口上执行的函数,spark支持三中类型的窗口函数: 聚合函数 (aggregate functions) 排序函数(Ranking functions...id order by rank),因此,这两个函数可以在一次shuffle中完成。...可以看到sql中 if 函数的执行位置如下: spark-sql> explain select id,sq,cell_type,rank,if(cell_type!

    3.2K71

    【Spark篇】---Spark中Shuffle机制,SparkShuffle和SortShuffle

    一、前述 Spark中Shuffle的机制可以分为HashShuffle,SortShuffle。...问题:聚合之前,每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式的弹性的数据集,RDD的partition极有可能分布在各个节点上。...Spark中有两种Shuffle类型,HashShuffle和SortShuffle,Spark1.2之前是HashShuffle默认的分区器是HashPartitioner,Spark1.2引入SortShuffle...b) 在Shuffle Read过程中会产生很多读取磁盘小文件的对象。       c) 在JVM堆内存中对象过多会造成频繁的gc,gc还无法解决运行所需要的内存 的话,就会OOM。...d) 在溢写之前内存结构中的数据会进行排序分区        e) 然后开始溢写磁盘,写磁盘是以batch的形式去写,一个batch是1万条数据,        f) map task执行完成后,会将这些磁盘小文件合并成一个大的磁盘文件

    2.1K30
    领券