- 博客(30)
- 资源 (2)
- 收藏
- 关注
原创 Application、Job、Stage和task 之间的关系
RDD任务切分中间分为:Application、Job、Stage和TaskApplication:初始化一个SparkContext即生成一个Application; Job:一个Action算子就会生成一个Job; Stage:Stage等于宽依赖(ShuffleDependency)的个数加1; Task:一个Stage阶段中,最后一个RDD的分区个数就是Task的个数。注意:Application->Job->Stage->Task每一层都是1对n的关系。 ...
2020-12-07 19:04:20
924
原创 Scala中集合的方法求wordCount代码解析
wordcount的详细分析def main(args: Array[String]): Unit = {//文本拆分成多行,把多行转换成一个集合val list: List[String] = Source.fromFile("input/word.txt").getLines().toListprintln(list)//flatmap 是先map再flatten//此时文本中的每一行就是一个元素,下面的下划线就是一行//得到的结果是一个一个的单词val wordLis.
2020-11-23 18:31:52
431
原创 Scala 模式匹配
功能函数中应用模式匹配(重点)比如在map函数中使用1、场景:之前的map是这样的,因为不方便所以才会用模式匹配。让它处理方便1)因为下划线1,下划线2时间长了就记不住2)上面发现Map中每个都是tuple,tuple是可以做模式匹配的,t就是tuple3)开始模式匹配:把tuple换成((prv,item,),cnt)4)prv对应着地区,item对应着商品,cnt对应的就是数量5)map的时候做这样的转换这样就省去了下划线,看着和操作都更方便...
2020-11-23 18:28:41
516
原创 Scala 函数式编程的重要部分总结
一、至简原则因为所有的表达式都有返回值(最后一行当返回值)1)函数可以自动将最后一行代码的结果作为函数的返回值。可以省略return.能推断最后一行代码作为返回值2)如果返回值能确定,返回值的类型其实也可以确定。那么返回值类型就可以省略场景1:String是自动提示的场景2:自动推断返回值类型。因为Scala是强类型语言,在运行之前就得知道返回值类型。要么返回10就是int要么就不返回是Unit就得找通用的AnyVal...
2020-11-23 18:20:46
414
原创 scala 函数柯里化的理解
函数柯里化:本质就是一个函数有多个参数列表使用函数柯里化的好处一:简化嵌套函数的开发//没有使用柯里化的时候,是两个函数嵌套使用def test2() = {def fun(): Unit = {println("xxxxx")}fun _}//调用test2()()结果:xxxxx//使用了函数柯里化(使用了两个参数列表)//两个参数列表,就不必再使用嵌套函数了,而且和test2 实现的结果一样。 达到了简化嵌套函数的效果def ..
2020-11-23 18:16:36
778
1
原创 MySql的各种语句(最详细)-10(数据处理之增删改操作)
#数据处理之增删改操作#1. 添加数据CREATE TABLE emp1(id INT,emp_name VARCHAR(15),hire_date DATE,salary DOUBLE(10,2));SELECT *FROM emp1;DESC emp1;#方式一:#注意:添加的字段值要与emp1表中字段声明的顺序一致INSERT INTO emp1VALU...
2020-03-29 15:44:22
195
原创 MySql的各种语句(最详细)-9(创建和管理表)
#创建和管理表/*DML: INSERT / DELETE / UPDATE / SELECTDDL: CRAETE / ALTER/ TRUNCATE / DROP / REMAMEDCL: COMMIT / ROLLBACK / GRANT / REVOKE / SAVEPOINT*/#1.1 如何创建数据库CREATE DATABASE myemp;#1.2 选中要操...
2020-03-29 15:43:01
191
原创 MySql的各种语句(最详细)-8(子查询)
#子查询#谁的工资比Abel的高?#方式一:SELECT salaryFROM employeesWHERE last_name = 'Abel';SELECT last_name,salaryFROM employeesWHERE salary > 11000;#方式二:自连接SELECT e2.last_name,e2.salaryFROM employees ...
2020-03-29 15:41:54
152
原创 MySql的各种语句(最详细)-7(分组函数)
#分组函数/*一、几个常见的组函数:sum() / avg() / max() / min() / count()二、group byhaving */#10.1 sum() / avg():只适用于数值型的变量SELECT SUM(salary),AVG(salary)#,avg(last_name),avg(hire_date)FROM employees;#1...
2020-03-29 15:40:55
198
原创 MySql的各种语句(最详细)-6(单行函数)
#单行函数#sql中的主要数据类型有:数值型、字符串型、日期型#1. 字符串相关的函数SELECT CONCAT('abc','--','123') "details"FROM DUAL;#练习:xxx works for yyySELECT CONCAT(emp.last_name,' works for ',mgr.last_name) "details"FROM empl...
2020-03-29 15:39:57
147
原创 MySql的各种语句(最详细)-5(七种join操作)
#七种join操作#情况1:中图:SELECT e.employee_id,e.last_name,d.department_nameFROM employees e JOIN departments dON e.`department_id` = d.`department_id`;#情况2:左上图:左外连接SELECT e.employee_id,e.last_name,d...
2020-03-29 15:38:01
310
原创 MySql的各种语句(最详细)-4(多表查询)
#多表查询#出现了笛卡尔积的错误SELECT employee_id,last_name,department_nameFROM employees,departments; #2889SELECT 2889 / 107FROM DUAL; # 27SELECT department_idFROM departments; #27#正确的:SELECT employee_...
2020-03-29 15:34:36
186
原创 MySql的各种语句(最详细)-3(排序数据和分页)
#04-排序数据和分页#1. 排序数据# 1.1 使用order by实现# 排序方式:升序(ascend):asc 降序(decend):descSELECT employee_id,last_name,salary,hire_dateFROM employees#order by salary asc;#order by salary desc;#order by last...
2020-03-29 15:32:52
182
原创 MySql的各种语句(最详细)-2(过滤数据)
#03-过滤数据SELECT last_name,salary,hire_dateFROM employees#where department_id = 90;WHERE last_name = 'King';#where hire_date = '1989-09-21';#在查询中使用字符串、日期型变量时,需要使用一对''表示#使用一对''表示的字符串本身,在sql标准中是区...
2020-03-29 15:31:48
205
原创 MySql的各种语句(最详细)-1(基本的select语句)
#02-基本的SELECT语句USE temp;SHOW TABLES;SELECT * #所有的列FROM employees;SELECT employee_id,last_name,emailemployees:员工表FROM employees;SELECT *FROM departments;SELECT *FROM locations;#...
2020-03-29 15:30:23
165
原创 对数据表进行CRUD操作:dbutils
前提:导入数据提供javabean:Customer类 :/** * ORM(object relational mapping)的编程思想 * 数据库中的一个表与java中的一个类对应 * 数据表的一行与java类的一个对象对应 * 数据表的一列与java类的一个属性对应 * * @author shkstart * @create 2020 下午 2:42 */p...
2020-03-28 15:50:18
211
原创 将使用Druid的方式二封装到工具类:JDBCUtils
public class JDBCUtils { private static DataSource dataSource;//只有一个数据源 static{ //1.加载配置文件 Properties pros = new Properties(); InputStream is = DruidTest.class.getClas...
2020-03-28 15:38:21
218
原创 如何获取数据库的连接:Druid数据库连接池
前提:导入druid驱动方式一:未使用配置文件//使用Druid数据库连接池实现数据库的连接 //DataSource作为数据库连接池技术的起始点。即要在不同的数据库连接池技术中,获取此数据源的实现类 //方式一:未使用配置文件 @Test public void test1() throws SQLException { //1. Data...
2020-03-28 11:15:59
2371
1
原创 如何获取数据库连接?
//体会:面向接口编程的思想 //方式一: @Test public void test1() throws Exception { //1. 获取连接的4个必备要素: //① 提供Driver接口的实现类: String driverName = "com.mysql.jdbc.Driver"; //② 提供u...
2020-03-28 10:26:41
720
原创 线程的创建方式有哪些,用哪种比较好?
线程常用的创建方式,第一种是使用Runnable。第二种是继承Thread类型。第三种实现Callable接口,第四种 使用线程池实现Runnable接口更好一些。1,因为实现Runnable接口可以避免Java单继承的局限性。当一个类继承了Thread,就不可以在继承其他类了。而当一个类实现了Runnable,它一样可以继承其他类。2,更符合面向对象的设计。run()方法的作用是...
2020-03-27 14:54:17
1793
原创 HashMap的底层实现及扩容机制?
jdk8之前:底层是数组+链表存储。当table 中的元素个数达到table.length*0.75的时候,并且新添加的桶已经非空,table.length的长度会扩充为原来的两倍jdk8之后:底层为数组+链表(红黑树)。当table 中的元素个数达到table.length*0.75的时候,并且新添加的桶已经非空,table.length的长度会扩充为原来的两倍;当[index]下的节点数为...
2020-03-27 14:52:26
185
原创 ArrayList和LinkedList的底层实现(存储结构、扩容机制)
Arraylist 底层是数组,以add()方法为例,创建集合对象时候,会首先创建长度为10的数组,一旦添加的数据个数超过了底层数组的长度10 ,就会考虑扩容。默认的扩容长度为原来的1.5倍,同时将原来的数组在中的数据复制到新的数组中LinkedList:底层是Node双向链表的结构,添加数据时候,元素会封装在Node 对象中,并且指向前面和后面的元素。因为底层不是数组,所以LinkedLis...
2020-03-27 14:51:41
1166
原创 编写一个懒汉式单例设计模式
public class Apple {//私有化构造器private Apple() {}//创建对象private static Apple apple=null;//提供公有的访问方法public static Apple getinstance(){if (apple==null){apple=...
2020-03-27 14:50:46
665
原创 请写一个冒泡排序,实现{5,7,3,9,2}从小到大排序
@Testpublic void test(){int[] arr={5,7,3,9,2};for (int i = 0; i <arr.length-1 ; i++) {for (int j = 0; j < arr.length-1; j++) {if (arr[j]>arr[j+1]){...
2020-03-27 14:49:13
2113
原创 Conllection和Conlltions的区别
Collection:java中用于存储单列数据的集合接口,其子接口有List,SetConllections:是一个操作Set、List、和Map等集合的工具类
2020-03-17 19:45:21
1565
原创 hashMap的实现原理
jdk7中:以HashMap map=new HashMap();中添加操作为例map.add(Key1,value1) 添加数据时候会进行以下操作。1)添加时,底层会开辟一个16长度的数组table。当添加时候,会根据k1的哈希值计算所处数组的位置,如果数组中的元没有k1重复的,将添加成功2)当确定(k1,value)在数组中所在的位置的时候,会在k1所处的链表与相同链表的...
2020-03-17 19:37:06
66
原创 集合转文件(字符流),文本文件中的信息读取到新的集合中(学生年龄降序排列)
学生类为例:创建学生类:import java.util.Objects;public class Student { private String name; private String sex; private int age; private String score; public Student() { } p...
2019-08-23 15:38:39
305
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人