大数据学习路线 学习笔记 Day7

大数据学习路线 学习笔记 Day7

继续数据容器篇

一、set集合

set和dict类似,也是一组key的集合,但不存储value,由于key不能重复,所以,在set中,没有重复的key,所以经常用于需要去重的场景

set集合的特点:无序、元素不能重复、可变的、适用于需要去重的场景

1.set集合的创建

创建一个set集合,可以使用花括号 { } 或者是 set( ) 方法进行创建。
但是空集合只能使用set( ) 方法!!!!
示例:

# 创建set集合

#使用 {  }
set1={6,5,1,2,3,4,7,9}
print(set1)
print(type(set1))
#使用set() 方法
set2=set([1,5,6,7,2,9])
print(set2)
print(type(set2))

# 创建空集合,必须使用 set()
set3={}
print(type(set3))     #使用{  } ,创建的是一个空字典
set4=set()
print(type(set4))

image.png
1.因为set集合是无序的数据容器,所以创建时输入元素的顺序与打印出来的不同。虽然看似经过了排序,但其实还是无序的

2.使用set( )方法创建集合时,需要用中括号 [ ] 导入元素。

3.创建空集合时,不能使用花括号,因为 object={ } 是字典类型为了区分,只能使用set()方法创建空集合。

无序的证明:

#尝试用下标提取集合内元素
set1={6,5,1,2,3,4,7,9}
print(set1[2])

image.png
使用下标取元素,直接报错,证明无序!

2.set集合常见方法

方法作用
add向set集合中添加元素,若存在则去重,不存在则添加
pop随机移除一个元素,因为set集合是无序的
remove从set集合中移除元素,若不存在则报错
discard同remove,也能移除元素,但当其不存在时,不会报错
intersection返回两个集合的交集
union返回两个集合的并集
difference返回两个集合的差集

增删操作示例:

set1={6,5,1,2,3,4,7,9}
# 增加一个元素
set1.add(1)
set1.add(8)
print(set1)
# 元素存在则会被去重,不存在则添加
print('*'*20)
# 移除元素,随机的
set1.pop()
set1.pop()
print(set1)
set1.remove(9)
print(set1)

image.png
使用remove移除元素时,元素不存在即会报错:

set1={6,5,1,2,3,4,7,9}
# 使用remove移除时,元素不存在,也会报错
set1.remove(10)
# 可以使用discard进行安全的移除
set1.discard(10)

image.png
discard可以进行安全的移除,即使元素不存在,也不会报错。我们点进discard方法的说明,可以看到:
image.png


查改操作示例:

# 修改和查询
# 因为集合是无序的,无法直接定位到某个元素,所以无法直接修改,可以先移除,再添加。
set1={6,5,1,2,3,4,7,9}
set1.discard(9)
set1.add(8)
print(set1)
# 删除了元素9,添加了元素8,等于把9修改为8
# 查询: 元素在不在集合内
print(6 in set1)
print(10 in set1)    #这种方式对于列表,元组,字典,集合通用

image.png
1.因为集合是无序的无法直接定位到某个元素,所以无法直接修改,可以先移除,再添加。
2. (xxx in object )这种方法可以查询xxx元素是否存在在容器内返回布尔值,这种方法对列表,元组,字典,集合都适用。


集合运算方法

集合的运算是集合区别于其他数据容器的重要的一点,只有集合有这种运算方法,示例:

set1={6,5,1,2,3,4,7,9}
set2={4,6,3,5,10,65,477}
# 交集
print(set1.intersection(set2))
# 并集
print(set1.union(set2))
# 差集
print(set1.difference(set2))
print(set2.difference(set1))
# 判断是否为子集
set3={4,5,6}
print(set1.issuperset(set3))
print(set2.issuperset(set3))
# 判断是否为父集
print(set1.issubset(set3))
print(set2.issubset(set3))

image.png
1.交集返回的是两个集合共有的元素
2.并集返回的是两个集合合并起来所有元素(去重后的)
3.差集返回difference( )括号内集合没有的,而前面的集合特有的。
或者理解为先删除两个集合共有的元素,然后返回删除后的set1
4.issuperset( )方法判断括号内集合是否是前面集合的子集,返回布尔值
5.issubset( )方法判断括号内集合是否是前面集合的父集,返回布尔值


至此,数据容器知识点整理结束。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分 Spark学习 6 第1章 Spark介绍 7 1.1 Spark简介与发展 7 1.2 Spark特点 7 1.3 Spark与Hadoop集成 7 1.4 Spark组件 8 第2章 Spark弹性分布数据集 9 2.1 弹性分布式数据集 9 2.2 MapReduce数据分享效率低 9 2.3 MapReduce进行迭代操作 9 2.4 MapReduce进行交互操作 10 2.5 Spark RDD数据分享 10 2.6 Spark RDD 迭代操作 10 2.7 Spark RDD交互操作 10 第3章 Spark安装 11 第4章 Spark CORE编程 13 4.1 Spark Shell 13 4.2 RDD Transformations 13 4.3 Actions 16 4.4 用RDD编程 17 4.5 UN-Persist存储 18 第5章 Spark调度与高级编程 20 5.1 Spark应用程序例子 20 5.2 Spark-submit语法 22 5.3 Spark变量 23 5.4 数字类型 RDD操作 23 第二部分 ZOOKEEPER学习 24 第6章 zookeeper介绍 25 6.1 zookeeper简介 25 6.2 分布式应用程序 25 6.3 Apache Zookeeper意味着什么? 26 第7章 zookeeper基本组成与工作流程 27 第8章 zookeeper的leader节点选择 31 第9章 zookeeper安装 33 第10章 zookeeper 命令行接口 35 第11章 zookeeper应用程序接口 39 第12章 zookeeper应用 40 第三部分 KAFKA学习 48 第12章 KAFKA介绍 49 12.1 KAFKA简介 49 12.2信息系统 49 12.3 KAFKA是什么? 50 第13章 KAFKA基本组成与集群架构 51 13.1 KAFKA的基本组成 51 13.2 KAFKA集群架构 52 第14章 KAFKA工作流程 53 14.1 PUB-SUB信息工作流 53 14.2 队列信息工作流/消费者组 53 14.3 Zookeeper在KAFKA中扮演的角色 54 第15章 KAFKA安装 55 第16章 KAFKA基本操作 56 16.1 启动zookeeper服务 56 16.2 单个单节点中间件配置 56 16.3 Topics列表 56 16.4 启动生产者发送信息 57 16.5 启动消费者接收信息 57 16.6 单个多节点中间件配置 57 16.7 创建一个topic 58 16.8 启动生产者发送信息 59 16.9 启动消费者接收信息 59 16.10 基本Topic操作 59 16.11 删除Topic 59 第17章 KAFKA 生产者与消费者群实例 60 17.1 生产者实例 60 17.2 简单消费者实例 63 17.3 消费者群例子 65 第18章 KAFKA与SPARK集成 67 18.1 Kafka与spark集成 67 18.2 SparkConf API 67 18.3 StreamingContext API 67 18.4 KafkaUtils API 67 18.5 建立脚本 69 18.6 编译/打包 69 18.7 提交到Spark 69 第四部分HIVE学习 70 第19章 HIVE介绍 71 19.1 HIVE是什么? 71 19.2 HIVE特点 71 19.3 HIVE架构 71 19.5 HIVE工作流 72 第20章 HIVE 安装 74 20.1 Hadoop安装 74 20.2 HIVE安装 77 20.3 Derby安装与设置 78 第21章 HIVE 数据类型 80 21.1列类型(Column Type) 80 21.2文本类型(Literals) 81 21.3 Null 值 81 21.4 复杂类型 81 第22章 数据库操作 82 22.1 创建数据库 82 22.2 删除数据库 82 第23章 数据表操作 83 23.1 创建数据表 83 23.2 load数据(插入数据) 85 23.3 修改数据表(Alter table) 86 23.4 删除表(Drop table) 90 第24章 分区 92 24.1 添加分区(Adding a Partition) 93 24.2 重命名分区(Renaming a Partition) 93 24.3 删除分区(Droping a Partition) 93 第25章 内置运算符 94 25.1 关系运算符 94 25.2 算术运算符 96 25.3 逻辑运算符 97 25.4 复杂运算符(Complex Operators) 97 第26章 内置函数 98 26.1 内置函数 98 26.2 聚合函数(Aggregate Functions) 99 第27章 视图与索引 100 27.1 创建视图(Creating a View) 100 27.2 删除视图(Dropping a View) 100 27.3 创建索引(Creating an Index) 101 27.4 删除索引(Dropping an Index) 101 第28章 HIVEQL 102 28.1 查询语句(SELECT ...WHERE) 102 28.1.1 查询语句实例 102 28.1.2 JDBC查询语句实例 102 28.2 查询语句(SELECT...ORDER BY) 103 28.2.1 ORDER BY查询语句实例 103 28.2.2 JDBC ORDER BY 查询语句实例 104 28.3 查询语句(GROUP BY) 104 28.3.1 GROUP BY查询语句实例 104 28.3.2 JDBC GROUP BY查询语句实例 105 28.4 查询语句(JOIN) 106 28.4.1 JOIN查询语句实例 106

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值