- 博客(26)
- 收藏
- 关注
原创 Hive的not in子查询引发的血案:子查询用in,结果正确;而not in 子查询结果必须key(id)中没有null值存在,最终结果才正确
------------------------------------------------- 子查询用in,结果正确;而not in 子查询结果必须key(id)中没有null值存在,最终结果才正确with a as ( select 1 as id, "a1" as name union all select 2 as id, "a2" as name union all select 3 as id, "a3" as name ),b as( selec
2020-06-20 22:47:27
480
原创 给定数组[4,5,6,7,8,9,0,1], 在时间复杂度logn限制下, 找出n是否在该数组中,如果在返回索引位置,如果不在返回-1
给定数组[4,5,6,7,8,9,0,1], 在时间复杂度logn限制下,找出n是否在该数组中,如果在返回索引位置,如果不在返回-1
2020-05-27 21:05:51
301
原创 实现多个线程间交替打印,如在100以内,每个线程每打印10次,然后交换
加粗样式package com.jn.learning.javalearning.thread;/*************************************************************************** * * Written by TankPush (Jn) * DATE: 2020-05-24 23:55 * * Description: 实现多个线程间交替打印,如在100以内,每个线程每打印10次,然后交换 * * *********
2020-05-25 00:08:08
525
原创 多线程(多窗口售票:线程间通信问题,因为多个线程操作同一份共享数据)
实现Runnable接口相对继承Thread要简洁些package com.jn.learning.javalearning.thread;/*************************************************************************** * * Written by TankPush (Jn) * * Description:窗口卖票(多线程操作同一份共享数据,实现线程间通信) * 1、定义总票数:共享数据 * 2、定义卖票功能:同步
2020-05-24 23:47:20
397
原创 Kafka配置
Kafka群起脚本#!/bin/bashfor i in `cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves`dossh $i 'source /etc/profile && /opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-0.11.0.2/config/server.properties'if [ $? -
2020-05-24 16:22:20
188
原创 Idea添加新依赖后,自动将Language Level重置为5的解决办法
Pom文件中添加如下配置添加新依赖的操作在Maven项目发生变化而自动update时,依然会被重置,因此需要保证上面的设置版本号是对的即可,最根本的解决方案就是在pom.xml文件中指定项目编译的Java版本,即maven-compiler-plugin的版本,该版本会影响Language Level和JavaCompiler,修改后项目默认就使用了该配置<build> <plugins> <plugin> <
2020-05-24 11:01:35
894
原创 Spark依赖(SparkCore、SparkSql、SparkStreaming)
SparkStreaming<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>2.1.1</version></dependency>
2020-05-24 10:44:39
509
原创 冒泡排序(二次优化版)
package com.jn.learning.algorithm.sort;import java.util.Arrays;import java.util.Random;/*************************************************************************** * * * Written by TankPush (Jn) * Description:冒泡排序: * 优化点: * 1、一轮内部遍历排序后,查看标志位是否无改
2020-05-20 23:34:44
192
原创 给定一个数组,返回一个去重且有序的数组(三种方式)
package com.jn.learning.algorithm.sort;import java.util.Arrays;import java.util.Iterator;import java.util.TreeSet;/***************************************************************************** * * * Written by TankPush (Jn) * * Description: 对给定数组
2020-05-20 00:14:54
951
原创 Hive中inline(array(struct))直接解析struct结构中的内容
从struct 类型的 named_struct_1字段 解析其中内容:page_id, page_name, log_datecreate table tmp_user_scan_info_struct_mid stored as orc asselect uid, named_struct('page_id', page_id, 'page_name', page_name, 'log_date', log_d
2020-05-17 04:51:50
2110
原创 Hive中String数据类型转Map类型(第一种:完整map结构的string类型转map类型;第二、三种:类似map结构的string类型转map类型,第三种需指定分隔符)
----------第一种 完整map结构的string类型: 查看原始表的表结构和数据 ------------hive> select * from test_map_1_to_string;uid string11 {"key1":"value1,key2":"value2"}2 {"key3":"value3,key4":"value4"}-------------------------------- 错误 HiveSQL ---------------------------
2020-05-16 19:30:30
3658
原创 Hive实现:1、获取每个人最高分对应的学科和分数(学生最高分);2、获取每门课程都高于平均分的人、课程和分数(三好学生:每科高于平均分);3、获取每个学科都及格(即不低于60分)的学生
数据表和需求表名:student, 结构和具体内容如下:name course scorezs Math 100zs Engl 80ls Math 90ls Engl 70需求如下:1、获取每个人最高分对应的学科和分数(方式一:使用row_number()开窗函数;方式二:不用开窗函数,使用join方式)2、获取每门课程都高于平均分的人、课程和分数数据准备set hive.exec.mode.local.auto=true;set hive.c
2020-05-16 14:42:42
4236
原创 Hive中Map数据类型转String类型,其中具体内容不变
--上传测试数据drop table test_map_1;create table test_map_1 asselect 1 as uid, map("key1", "value1","key2", "value2") as map1 union all select 2 as uid, map("key3", "value3","key4", "value4") as map1;--查看当前测试表结构是否是map<string,string>类型hive> desc t
2020-05-13 17:25:21
12693
原创 Hive sql 任意N天中有M天登录,如 任意7天达到3天登录
使用HiveSQL实现 任意N天中有M天登录的需求:具体举例,***任意7天达到3天登录***可以翻译为:当前次登录时间 与 第3次登陆的时间 的差值在7天内WITH user_info as(select 1 as user_id, '2020-01-01' as log_date union allselect 1 as user_id, '2020-01-02' as log_date union allselect 1 as user_id, '2020-01-03' as log_dat
2020-05-13 16:58:30
858
原创 多字段同时列转多行(Hive版),即多字段,对应应的位置连接 (如 a-b 1-2 =>列转行后为两行,分别为 a-1,b-2) 注意:posexplode比 explode多返回一个pos
查询sql:select tmp.*, t1.t1_sku_id, t2.t2_order_numfrom( select 1 as uid, 'a,b,c' as sku_id, '10,20,30' as order_num union all select 2 as uid, 'a,b,c,d' as sku_id, '10,20,30,40' as order_num)tmplateral view outer posexplode( spl
2020-05-13 15:10:43
489
原创 使用HiveSQL实现开始到结束日期之间的所有日期
查询1:set hive.exec.mode.local.auto=true; --开启本地模式set hive.cli.print.header=true; --打印表.列名select tmp.*, t.*, date_add(start_date, pos) as mid_datefrom( select '1' as uid, '2020-01-01' as start_date, '2020-01-05' as end_date
2020-05-13 14:40:52
4340
原创 单例设计模式(静态内部类方式:线程安全,且懒加载)
package com.jn.learning.javalearning.singleton;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * 静态内部类方式 * 线程安全,且懒加载 * * *****************************
2020-05-11 13:05:20
241
原创 经典的生产消费者问题(多线程:线程间通信;静态代理)
package com.jn.learning.javalearning.thread;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * 生产消费者问题:线程间通信 * 生产者生产产品,消费者消费产品, * 中间环节中店员负责二者间联系,当数量少于10
2020-05-11 12:34:46
174
原创 单例设计模式(饿汉式:线程安全)
package com.jn.learning.javalearning.singleton;/********************************************************************************************** * * * Written by TankPush (Jn) * Description: * 饿汉式:线程安全 * * ********************************************
2020-05-11 01:04:39
245
原创 单例设计模式(DCL:双重检锁、懒汉式)
package com.jn.learning.javalearning.singleton;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * DCL双重检测单例 * volatile: ①保证线程可见性 ②防止指令重排序 * 线程安全 * * *
2020-05-11 00:48:32
427
1
原创 单例设计模式(枚举方式:饿汉式)
package com.jn.learning.javalearning.singleton;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * 饿汉式:最简洁。 * 实现了序列化、toString、可比较大小等 * * ***************
2020-05-11 00:44:29
297
原创 选择排序 V1 (初始版本)
package com.jn.learning.algorithm.sort;import java.util.Random;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * 选择排序,是不稳定排序:从开始位置,选定一个元素,依次与后面元素比较,如果后
2020-05-11 00:37:34
126
原创 选择排序 V3(遍历优化,一次遍历找出最大值和最小值)
package com.jn.learning.algorithm.sort;import java.util.Arrays;import java.util.Random;/********************************************************************************************** * * * Written by TankPush (Jn) * * Description: * 选择排序 * 时间复杂度
2020-05-11 00:23:07
721
原创 选择排序 V2(多次执行的代码单独成方法)
package com.jn.learning.algorithm.array;import java.util.Arrays;import java.util.Random;/********************************************************************************************** * * * Written by TankPush ((Jn)) * * Description: * 选择排序,是不稳定排
2020-05-11 00:13:07
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人