2017.10.25
更换下载源在“软件和更新”里面,推荐阿里的源
查看软件位置:dpkg -L 软件名
一般使用apt-get安装的软件都在/usr/share下面,这就让我突然好奇,这几个文件夹到底是干什么的
总结如下:/usr/lcoal通常用来放手动安装的软件 /usr/share 通常用来放数据文件和帮助
加载的配置文件在/etc下 可执行程序在/usr/bin下
在apt-get里面会遇到两个命令update和upgrade,有童鞋容易搞混淆,比如说我
update:更新整个仓库的版本信息(这个源有什么包,每个包有什么版本)
upgrade:升级软件包
1.我想说说split这个函数,不知道为什么,我的ide并不会提示这个函数,可能是因为我没给$。
在python中有split()和os.path.split()两个函数,后者用的比较少,用来分割文件名和路径的。我就不告诉你用法
split()语法为:str.split(str='这里填分隔符',num=string.cout(str))[n]
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
ps:当使用空格作为分隔符的时候,中间为空的项会自动忽略
2.关于lambda:今天又碰到这个保留字了,和map一起出现的。这真是奇技淫巧。
这个map:map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
不严谨的大白话就是:给map一个函数关系f,再给它自变量,它给你算出结果来。
而这个lambda就是传说中的匿名类,可以免去定义多余函数的苦恼。
3.flatMap,属于Transformation算子,操作和map一样,但是输出结果的时候会把分区合并成一个
spark学习日志:
0.调用sc下的textFile函数就是读hdfs数据到RDD啊
1.RDD作为数据结构,本质上是一个只读的分区记录集合。一个RDD可以包含多个分区,每个分区就是一个dataset片段。
2.DataSet可以看做是内存中的数据库,也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable)
3.partition:n. 分割; 隔墙; 划分,分开; 隔离物
RDD的mapPartitions是map的一个变种,他们都可以进行分区的并行处理
区别是:前者的输入变换函数应用于RDD中的每一个分区,后者应用于RDD中的每一个元素。举个栗子:
假设一个RDD有10个元素,分成3个分区。如果使用map方法,map中的输入函数会被调用10次;而使用mapPartitions方法的话,其输入函数会只会被调用3次,每个分区调用1次
4.distinct(),去重(chong二声)函数,顾名思义,去掉重复项。我第一反应是LFSR的那个去重
5.zipWithIndex(),该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对。在python里也就是形成字典形式,嗯!
6.
稀疏向量(SparseVector):稀疏向量是指向量元素中有许多值是0的向量。可以用list或者dict初始化
向量标签(Labeled point):向量标签就是在向量和标签的组合,分类和回归中,标签可以作为分类中的类别,也可以作为回归中的实际值。
7.还有很多别的东西,刚刚接触spark,看不太懂,不太确定,不敢记在这里,后会有期