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

【技术分享】Spark DataFrame入门手册

一、简介 Spark SQLspark主要组成模块之一,其主要作用与结构化数据,与hadoop生态的hive是对标的。...从上面的例子可以看出,DataFrame基本把SQL函数给实现了,在hive中用到的很多操作(:select、groupBy、count、join等等)可以使用同样的编程习惯写出spark程序,这对于没有函数式编程经验的同学来说绝对福利...(col1: String, cols: String*) 返回一个GroupedData类型,根据某些字段来汇总 8、 distinct 去重 返回一个dataframe类型 9、 drop(col:...,请使用column类型; doc_image_9_w325_h90.jpg 分组操作 11.jpg 分组聚合是在数据分析中最长用到的操作之一,比如上图所示,需要对某个字段进行分组求和、求平均、求最大最小等...API介绍: http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.DataFrameNaFunctions

4.7K60

系列 | 漫谈数仓第四篇NO.4 『数据应用』(BI&OLAP)

★钻取:维的层次变化,从粗粒度到细粒度,汇总数据下钻到明细数据。通过季度销售数据钻取每个月的销售数据 ★上卷:钻取的逆,向上钻取。从细粒度到粗粒度,细粒度数据到不同维层级的汇总。eg....ROLAP,完全基于关系模型进行存储数据,不需要预计算,按需即时查询。明细和汇总数据都保存在关系型数据库事实表。 HOLAP,混合模型,细节数据以ROLAP存放,聚合数据以MOLAP存放。...基本特点 Apache Druid 具有以下特点: 亚秒级 OLAP 查询,包括多维过滤、Ad-hoc 的属性分组、快速聚合数据等等。 实时的数据消费,真正做到数据摄入实时、查询结果实时。...Kylin Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc....场景特征: 大多数是读请求 数据总是以相当大的批(> 1000 rows)进行写入 不修改已添加的数据 每次查询都从数据库读取大量的行,但是同时又仅需要少量的 宽表,即每个表包含着大量的 较少的查询

2.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

系列 | 漫谈数仓第四篇NO.4 『数据应用』(BI&OLAP)

★钻取:维的层次变化,从粗粒度到细粒度,汇总数据下钻到明细数据。通过季度销售数据钻取每个月的销售数据 ★上卷:钻取的逆,向上钻取。从细粒度到粗粒度,细粒度数据到不同维层级的汇总。eg....ROLAP,完全基于关系模型进行存储数据,不需要预计算,按需即时查询。明细和汇总数据都保存在关系型数据库事实表。 HOLAP,混合模型,细节数据以ROLAP存放,聚合数据以MOLAP存放。...基本特点 Apache Druid 具有以下特点: 亚秒级 OLAP 查询,包括多维过滤、Ad-hoc 的属性分组、快速聚合数据等等。 实时的数据消费,真正做到数据摄入实时、查询结果实时。...Kylin Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc....场景特征: 大多数是读请求 数据总是以相当大的批(> 1000 rows)进行写入 不修改已添加的数据 每次查询都从数据库读取大量的行,但是同时又仅需要少量的 宽表,即每个表包含着大量的 较少的查询

2.4K20

SQL、Pandas和Spark:如何实现数据透视表?

可以明显注意到该函数的4个主要参数: values:对哪一进行汇总统计,在此需求即为name字段; index:汇总后以哪一作为行,在此需求即为sex字段; columns:汇总后以哪一作为...03 Spark实现数据透视表 Spark作为分布式的数据分析工具,其中spark.sql组件在功能上与Pandas极为相近,在某种程度上个人一直将其视为Pandas在大数据的实现。...04 SQL实现数据透视表 这一系列的文章,一般都是将SQL排在首位进行介绍,但本文在介绍数据透视表时有意将其在SQL的操作放在最后,这是因为在SQL实现数据透视表是相对最为复杂的。...仍然是在SQL构造临时数据表,如下: ? 而后我们采取逐步拆解的方式尝试数据透视表的实现: 1. 利用groupby实现分组聚合统计,这一操作非常简单: ?...上述SQL语句中,仅对sex字段进行groupby操作,而后在执行count(name)聚合统计时,由直接count聚合调整为两个count条件聚合,即: 如果survived字段=0,则对name计数

2.5K30

何在 CDP 的湖仓一体中使用Iceberg

在这篇由两部分组成的博客文章,我们将向您展示如何在 CDP 中使用 Iceberg 来构建一个开放的湖仓,并利用从数据工程到数据仓库再到机器学习的 CDP 计算服务。...在第一部分,我们将重点介绍如何在 CDP 中使用 Apache Iceberg 构建开放式湖屋;使用 CDE 摄取和转换数据;并利用时间旅行、分区演变和对 Cloudera 数据仓库上的 SQL 和...Iceberg prepare tables") \ .config("spark.sql.catalog.spark_catalog", "org.apache.iceberg.spark.SparkSessionCatalog..."org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")\ .getOrCreate() spark.sql("...我们可以将表的分区方案从年分区更改为年和月分区。将新数据加载到表后,所有后续查询都将受益于月和年的分区修剪。

1.2K10

数据仓库的性能问题及解决之道

其实即使能全部预计算,仍然解决不了诸如非常规聚合(算中位数、方差)、组合聚合(算月平均销售额)、条件测度(算交易金额大于 100 元以上的订单销售额合计)、时间段汇总(自由选择时间段内的汇总)等情况...这是许多厂商的工作重点,有大量工程性手段已为业界熟知,比如提供存、向量化执行、编码压缩、内存利用等(集群也可以算是一种工程手段),通过这些技术在一定数据规模内可以提升几倍的计算性能,在某些场景下足够用...但由于 SQL 描述能力的局限性,复杂查询会采取非常迂回的方法,一旦 SQL 复杂度上来优化引擎就很难发挥作用了(猜不出目标只能按照字面表达去执行,性能就不会提升),即优化引擎仅对简单查询有效。...的真正目的,只能按照 SQL 表达的意思进行大排序而性能低下。...,计算时会涉及大表关联、条件过滤、分组汇总、去重计数等多种混合运算,灵活、量大、计算复杂,同时伴随高并发导致使用 SQL 来做很吃力,预计算不灵活,实时算又太慢。

37010

Spark Streaming入门

数据流可以用Spark 的核心API,DataFrames SQL,或机器学习的API进行处理,并且可以被保存到HDFS,databases或Hadoop OutputFormat提供的任何文件系统中去...其他Spark示例代码执行以下操作: 读取流媒体代码编写的HBase Table数据 计算每日汇总的统计信息 将汇总统计信息写入HBase表 示例数据集 油泵传感器数据文件放入目录(文件是以逗号为分隔符的...日常统计汇总的模式如下所示: 泵名称和日期的复合行键 簇统计 最小值,最大值和平均值。...sparkstreamhbaseapp-1.0.jar 总结 这就结束了关于使用HBase进行Spark Streaming的教程。...参考文献和更多信息: Apache Spark入门:从入门到生产书籍 Apache Spark流编程指南 学习Spark O'Reilly Book Databricks Spark Streaming

2.2K90

不用 SQL 的数据仓库

同时,SQL 的集合是无序的,非常不擅长有序计算,涉及序运算经常会写得很繁琐甚至很难写出来。SQL 本身的语言特性注定不善于完成某些复杂计算,而这类计算在数据仓库类的数据分析型场景并不少见。...但这种自动优化机制仅对简单的情况下有效,一旦 SQL 变得稍复杂优化引擎就不起作用了,只能根据 SQL 的字面表达去执行,结果性能陡降。...更主要的是,由于 Python 要基于 SQL 数据库表进行运算,这些表(存储)为数据库私有外界无法干预。...不过很遗憾,随着使用的深入我们发现 Spark 并没有取代 SQL 的能力(实现繁琐、性能低),加之 Scala 的使用难度,让 Spark 又不得不回到 SQL 的怀抱。...、序号分组、…… 外键关联类的外键地址化、外键序号化、索引复用、对位序列、单边分堆、…… 归并与连接类的有序归并、分段归并、关联定位、附表、…… 多维分析类的部分预汇总、时间段预汇总、冗余排序、布尔维序列

17720

不用 SQL 的开源数据仓库

同时,SQL 的集合是无序的,非常不擅长有序计算,涉及序运算经常会写得很繁琐甚至很难写出来。SQL 本身的语言特性注定不善于完成某些复杂计算,而这类计算在数据仓库类的数据分析型场景并不少见。...但这种自动优化机制仅对简单的情况下有效,一旦 SQL 变得稍复杂优化引擎就不起作用了,只能根据 SQL 的字面表达去执行,结果性能陡降。...更主要的是,由于 Python 要基于 SQL 数据库表进行运算,这些表(存储)为数据库私有外界无法干预。...不过很遗憾,随着使用的深入我们发现 Spark 并没有取代 SQL 的能力(实现繁琐、性能低),加之 Scala 的使用难度,让 Spark 又不得不回到 SQL 的怀抱。...、序号分组、…… 外键关联类的外键地址化、外键序号化、索引复用、对位序列、单边分堆、…… 归并与连接类的有序归并、分段归并、关联定位、附表、…… 多维分析类的部分预汇总、时间段预汇总、冗余排序、布尔维序列

18120

【独家】一文读懂大数据计算框架与平台

在单机环境,我们只需把销售记录扫描一遍,对各商品的销售额进行累加即可。如果销售记录存放在关系数据库,则更省事,执行一个SQL语句就可以了。...为保证计算的正确、可靠、高效及方便,这个方案需要考虑下列问题: 如何为每台机器分配任务,是先按商品种类对销售记录分组,不同机器处理不同商品种类的销售记录,还是随机向各台机器分发一部分销售记录进行统计,最后把各台机器的统计结果商品种类合并...随机分组能达到负载均衡的效果,应优先考虑。不过在执行累加、数据关联等操作时,需要保证同一属性的数据被固定分发到对应的任务,这时应采用定向分组。在某些情况下,还需要自定义分组方案。 图8....一些批处理和流计算平台Spark和Flink也分别内置了交互式分析框架。由于SQL已被业界广泛接受,目前的交互式分析框架都支持用类似SQL的语言进行查询。...Hive支持熟悉的关系数据库概念,比如表、和分区,包含对非结构化数据一定程度的 SQL 支持。它支持所有主要的原语类型(整数、浮点数、字符串)和复杂类型(字典、列表、结构)。

5.3K71

取代而非补充,Spark Summit 2014精彩回顾

Spark SQL的主要开发人员Michael Armbrust:使用Spark SQL进行高级数据分析 Spark SQLSpark1.0最新的一个alpha组成部分。...Spark SQL的一个重要特点是其能够统一处理关系表和RDD,使得开发人员可以轻松地使用SQL命令进行外部查询,同时进行更复杂的数据分析。...目前,它支持流之间简单的查询以及流和结构化数据之间的相互操作,也支持在Catalyst的典型用法(LINQ表达式,SQL和DStream的结合)。...此过程shuffle的网络通信是昂贵的,key的数据组合也会使用大量的内存。Aaron举了一个简单的例子:计算不同人名的数量,并用人名的第一个字母分组。...为了实时处理这些图像,Kevin采用了一个上千台机器的计算机群,并在上面开发了一套基于Spark,可进行过滤、分割和形状分析的系统。为了加速后期处理,Kevin进行了实时近似分析,区域筛选和采样。

2.3K70

Apache Hudi 0.10.0版本重磅发布!

数据跳过对于优化查询性能至关重要,通过启用包含单个数据文件的级统计信息(最小值、最大值、空值数等)的统计索引,对于某些查询允许对不包含值的文件进行快速裁剪,而仅仅返回命中的文件,当数据全局排序时...使用空间填充曲线( Z-order、Hilbert 等)允许基于包含多的排序键有效地对表数据进行排序,同时保留非常重要的属性:在多列上使用空间填充曲线对行进行排序列键也将在其内部保留每个单独的排序...2.3 Spark SQL改进 0.10.0我们对 spark-sql 进行了更多改进,例如添加了对非主键的 MERGE INTO 支持,并新支持了 SHOW PARTITIONS 和 DROP PARTITIONS...5.3 Spark-SQL主键要求 HudiSpark SQL需要在sql语句中通过tblproperites或options指定primaryKey。...Spark SQL Create Table语法详情参考Create-table-datasource[14]。

2.3K20

【硬刚大数据】从零到大数据专家面试篇之SparkSQL篇

Spark SQL在汲取了shark诸多优势内存存储、兼容hive等基础上,做了重新的构造,因此也摆脱了对hive的依赖,但同时兼容hive。...它的内部组件,SQL的语法解析器、分析器等支持重定义进行扩展,能更好的满足不同的业务场景。...name"), personDS("age"), personDS("salary") + 1000) 3.过滤age大于18的 personDS.filter(col("age") > 18) 4.年龄进行分组并统计相同年龄的人数...但是这往往建立在我们发现任务执行慢甚至失败,然后排查任务SQL,发现"问题"SQL的前提下。那么如何在任务执行前,就"检查"出这样的SQL,从而进行提前预警呢?...这里给出一个思路,就是解析Spark SQL计划,根据Spark SQL的join策略匹配条件等,来判断任务是否使用了低效的Not in Subquery进行预警,然后通知业务方进行修改。

2.2K30

Apache Hudi又双叕被国内顶级云服务提供商集成了!

而且在数据仓库 hive ,对于 update 的支持非常有限,计算昂贵。...另一方面,若是有仅对某段时间内新增数据进行分析的场景,则 hive、presto、hbase 等也未提供原生方式,而是需要根据时间戳进行过滤分析。 在此需求下,Hudi 可以提供这两种需求的实现。...第一个是对 record 级别的更新,另一个是仅对增量数据的查询。且 Hudi 提供了对 Hive、presto、Spark 的支持,可以直接使用这些组件对 Hudi 管理的数据进行查询。...存储类型 Hudi 支持以下存储类型: 写时复制:仅使用文件格式(例如 parquet)存储数据。通过在写入过程执行同步合并以更新版本并重写文件。...更新记录到增量文件,然后进行同步或异步压缩以生成文件的新版本。

78130
领券