聚合数据

Java自学-Lambda 聚合操作

风流意气都作罢 提交于 2020-02-23 13:21:59
java 集合的聚合操作 步骤 1 : 传统方式与聚合操作方式遍历数据 遍历数据的传统方式就是使用for循环,然后条件判断,最后打印出满足条件的数据 for (Hero h : heros) { if (h.hp > 100 && h.damage < 50) System.out.println(h.name); } 使用聚合操作方式,画风就发生了变化: heros .stream() .filter(h -> h.hp > 100 && h.damage < 50) .forEach(h -> System.out.println(h.name)); package lambda; import java.util.ArrayList; import java.util.List; import java.util.Random; import charactor.Hero; public class TestAggregate { public static void main(String[] args) { Random r = new Random(); List<Hero> heros = new ArrayList<Hero>(); for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i, r

设计模式——迭代器模式

ⅰ亾dé卋堺 提交于 2020-02-09 20:42:02
20世纪80年代,那时我家有一台“古老的”电视机,牌子我忘了,只记得是台黑白电视机,没有遥控器,每次开关机或者换台都需要通过电视机上面的那些按钮来完成,我印象最深的是那个用来换台的按钮,需要亲自用手去旋转(还要使点劲才能拧动),每转一下就“啪”的响一声,如果没有收到任何电视频道就会出现一片让人眼花的雪花点。当然,电视机上面那两根可以前后左右移动,并能够变长变短的天线也是当年电视机的标志性部件之一,我记得小时候每次画电视机时一定要画那两根天线,要不总觉得不是电视机,。随着科技的飞速发展,越来越高级的电视机相继出现,那种古老的电视机已经很少能够看到了。与那时的电视机相比,现今的电视机给我们带来的最大便利之一就是增加了电视机遥控器,我们在进行开机、关机、换台、改变音量等操作时都无须直接操作电视机,可以通过遥控器来间接实现。我们可以将电视机看成一个存储电视频道的集合对象,通过遥控器可以对电视机中的电视频道集合进行操作,如返回上一个频道、跳转到下一个频道或者跳转至指定的频道。遥控器为我们操作电视频道带来很大的方便,用户并不需要知道这些频道到底如何存储在电视机中。电视机遥控器和电视机示意图如图1所示: 标题 在软件开发中,也存在大量类似电视机一样的类,它们可以存储多个成员对象(元素),这些类通常称为聚合类(Aggregate Classes),对应的对象称为聚合对象

数据聚合与分组运算(四)

南楼画角 提交于 2020-02-05 13:22:57
上一篇:数据聚合与分组运算(三) 数据聚合 聚合指的是任何能够从数组产生标量值的数据转换过程。 ===================================== 使用你自己的聚合函数,只需将其传入aggregate或agg方法即可 分位数和桶分析 用cut将其装入长度相等的桶中 ===================================== 由cut返回的Categorical对象可直接传递到groupby。 ===================================== 这些都是长度相等的桶。要根据样本分位数得到大小相等的桶,使用qcut即可。传 入labels=False即可只获取分位数的编号 ++++++++++++++++++++++++++++++++++++ 下一篇:数据聚合与分组运算(五) 来源: CSDN 作者: LinGavinQ 链接: https://blog.csdn.net/qq_42893334/article/details/104179780

pandas

╄→尐↘猪︶ㄣ 提交于 2020-01-20 00:09:21
1.数据导入与导出 # 数据导入 pd.read_csv(filename) # 导入csv格式文件中的数据 pd.read_table(filename) # 导入有分隔符的文本 (如TSV) 中的数据 pd.read_excel(filename) # 导入Excel格式文件中的数据 pd.read_sql(query, connection_object) # 导入SQL数据表/数据库中的数据 pd.read_json(json_string) # 导入JSON格式的字符,URL地址或者文件中的数据 pd.read_html(url) # 导入经过解析的URL地址中包含的数据框 (DataFrame) 数据 pd.read_clipboard() # 导入系统粘贴板里面的数据 pd.DataFrame(dict) # 导入Python字典 (dict) 里面的数据,其中key是数据框的表头,value是数据框的内容。 # 数据导出 df.to_csv(filename) # 将数据框 (DataFrame)中的数据导入csv格式的文件中 df.to_excel(filename) # 将数据框 (DataFrame)中的数据导入Excel格式的文件中 df.to_sql(table_name,connection_object) # 将数据框 (DataFrame

Hive(8)-常用查询函数

落花浮王杯 提交于 2020-01-19 15:29:09
一. 空字段赋值 1. 函数说明 NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。 2. 案例 -- 如果员工的comm为NULL,则用-1代替 select comm,nvl(comm, -1) from emp; -- 如果员工的comm为NULL,则用领导id代替 select comm, nvl(comm,mgr) from emp; 二. case when 1. 函数说明 2. 案例 -- 求出不同部门男女各多少人 select dept_id, sum(case sex when '男' then 1 else 0 end) male_sum, sum(case sex when '女' then 1 else 0 end) female_sum from emp_sex group by dept_id; 三. 行转列(concat) 1. 函数说明 CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的

搜索过滤

柔情痞子 提交于 2020-01-11 02:43:43
0.学习目标 了解过滤功能的基本思路 独立实现分类和品牌展示 了解规格参数展示 实现过滤条件筛选 1.过滤功能分析 1.1.功能模块 首先看下页面要实现的效果: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrJeCLwI-1578404532507)(assets/1526725119663.png)] 整个过滤部分有3块: 顶部的导航,已经选择的过滤条件展示: 商品分类面包屑,根据用户选择的商品分类变化 其它已选择过滤参数 过滤条件展示,又包含3部分 商品分类展示 品牌展示 其它规格参数 展开或收起的过滤条件的按钮 顶部导航要展示的内容跟用户选择的过滤条件有关。 比如用户选择了某个商品分类,则面包屑中才会展示具体的分类 比如用户选择了某个品牌,列表中才会有品牌信息。 所以,这部分需要依赖第二部分:过滤条件的展示和选择。因此我们先不着急去做。 展开或收起的按钮是否显示,取决于过滤条件现在有多少,如果有很多,那么就没必要展示。所以也是跟第二部分的过滤条件有关。 这样分析来看,我们必须先做第二部分:过滤条件展示。 1.2.问题分析 过滤条件包括:分类过滤、品牌过滤、规格过滤项等。我们必须弄清楚几个问题: 什么时候查询这些过滤项? 这些过滤项的数据从何而来? 我们先以分类和品牌来讨论一下: 问题1,什么时候查询这些过滤项? 现在,页面加载后就会调用

28.Spark中action的介绍

北慕城南 提交于 2020-01-07 14:12:36
新建一个类 package com.it19gong.sparkproject; import java.util.Arrays; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function2; public class ActionOperation { public static void main(String[] args) { reduce(); } private static void reduce() { // 创建SparkConf和JavaSparkContext SparkConf conf = new SparkConf() .setAppName("reduce") .setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); // 有一个集合,里面有1到10,10个数字,现在要对10个数字进行累加 List<Integer>

Spark调优指南

情到浓时终转凉″ 提交于 2020-01-03 08:13:03
Spark相关问题 Spark 比 MR 快的原因? 1) Spark 的计算结果可以放入内存,支持基于内存的迭代, MR 不支持。 2) Spark 有 DAG 有向无环图,可以实现 pipeline 的计算模式。 3) 资源调度模式: Spark 粗粒度资源调度, MR 是细粒度资源调度。 资源复用: Spark 中的 task 可以复用同一批 Executor 的资源。 MR 里面每一个 map task 对应一个 jvm ,不能复用资源。 Spark 中主要进程的作用? Driver 进程:负责任务的分发和结果的回收。 Executor 进程:负责具体任务的执行。 Master 进程: Spark 资源管理的主进程,负责资源调度。 Worker 进程: Spark 资源管理的从进程, woker 节点主要运行 Executor Spark调优 1. 资源调优 1) .搭建Spark集群的时候要给Spark集群足够的资源(core,memory) 在 spark安装包的conf下spark-env.sh SPARK_WORKER_CORES SPARK_WORKER_MEMORY SPARK_WORKER_INSTANCE 2) .在提交Application的时候给Application分配更多的资源。 提交命令选项:(在提交 Application的时候使用选项) -

彪悍开源的分析数据库-ClickHouse

夙愿已清 提交于 2020-01-02 09:17:29
https://zhuanlan.zhihu.com/p/22165241 今天介绍一个来自俄罗斯的凶猛彪悍的分析数据库: ClickHouse ,它是今年6月开源,俄语社区为主,好酒不怕巷子深。 本文内容较长,分为三个部分: 走马观花,死而后生,遥指杏花村 ;第一章,走马观花,初步了解一下基本特性;第二章,死而后生,介绍ClickHouse的技术架构演化的今生前世;第三章,遥指杏花村,介绍一些参考资料,包括一些俄文资料。 第一章,走马观花 俄罗斯的‘百度’叫做Yandex,覆盖了俄语搜索超过68%的市场,有俄语的地方就有Yandex;有中文的地方,就有百度么?好像不一定 :) 。 Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是, 这个列式存储数据库的跑分要超过很多流行的商业MPP数据库软件,例如Vertica。 如果你没有听过Vertica,那你一定听过 Michael Stonebraker,2014年图灵奖的获得者,PostgreSQL和Ingres发明者(Sybase和SQL Server都是继承 Ingres而来的), Paradigm4和SciDB的创办者。Michael Stonebraker于2005年创办Vertica公司,后来该公司被HP收购,HP

模型层之聚合查询&&分组查询&&查询&&Q查询&&事务&&查询优化

大憨熊 提交于 2019-12-31 16:33:51
聚合查询与分组查询 聚合 aggregate (*args, **kwargs) aggregate() 是 QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定一个名称,可以向聚合子句提供它。用到的内置函数: from django.db.models import Avg, Sum, Max, Min, Count 示例: res = models.Book.objects.all().aggregate(Avg('price'))#平均值 res1 = models.Book.objects.all().aggregate(Max('price'))#最大值 res2 = models.Book.objects.all().aggregate(Min('price'))#最小值 res3 = models.Book.objects.all().aggregate(Sum('price'))#求和 res4 = models.Book.objects.all().aggregate(Count('title'))#求总数,个数 根据最大值求其他的字段 res = models.Book.objects.all().aggregate