自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HadwinLing

完成大于完美。

  • 博客(218)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spark clip函数

package com.hadwinling.woaimport breeze.linalg.clipimport org.apache.log4j.{Level, Logger}import org.apache.spark.{SparkConf, SparkContext}/** * @Classname ClipDemo * @Description TODO * @Date 2021/8/13 12:09 * @Created by ${hadwinling} */obje

2021-08-13 12:52:33 273

原创 《Spark 先知先觉》如何将DataFrame 的内容保存到同一个或多个文件。

数据源API结构Read API 结构读取数据的核心结构如下:DataFrameReader.format(...).option("key","value").schema(...).load()使用此格式可以读取所有数据源,format 是可选的,默认情况下 Spark 将使用 Parquet 格式,option 能配置键值对(key-value) 来参数化读取数据的方法。最后,如果数据源包含某种 Schema 或者你想使用模式推理(Schema inference),则可以选择指定 sche

2021-08-12 15:00:18 847

原创 《Spark 先知先觉》DataFrame连接操作

package com.hadwinling.chapter8import org.apache.log4j.{Level, Logger}import org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSession/** * @Classname C01_Joins_API 连接操作 * @Description TODO * @Date 2021/8/12 8:27 * @Created by ${hadwinli

2021-08-12 11:05:31 1342

原创 《Spark 先知先觉》用户自定义的聚合操作UDAF

用户定义的聚合函数(UDAF) 是用户根据自定义公式或业务逻辑定义自己的聚合函数的一种方法。可以使用UDAF来计算输入数据组(于单行相对)的自定义计算。Spark 维护单个AggregationBuffer,它用于存储每组输入数据的中间结果。若要创建UDAF,必须继承UserDefinedAggregateFunction基类并实现以下方法:1:inputSchema:用于指定输入参数,输入参数类型为StructType2:bufferSchema:用于指定UDAF中间结果,中间结果类型为Struct

2021-08-11 19:31:56 191

原创 《Spark 先知先觉》DataFrame 聚合操作

聚合操作 // 首先读取零售业的采购数据,然后对数据进行重划分以减少分区数量(因为我们事先知道仅有少量数据存储在大量的小文件里), // 最后将这些数据缓存起来以便后续的快速访问 val df = spark.read.format("csv") .option("header", true) .option("inferSchema", true) .load(inputPath) .coalesce(5) // 小分区合并

2021-08-11 10:18:53 562

原创 《Spark 先知先觉》DataFrame转换操作

例子:将原始类型转处理布尔类型换为Spark 类型,使用 lit 函数函数:lit()用例:lit 函数:把其他语言的类型转换为与其相对应的Spark表示 // lit 函数:把其他语言的类型转换为与其相对应的Spark表示 df.select(lit(5),lit("five"),lit(5.0)).show()处理布尔类型例子:布尔语句由四个要素组成:and,or,true 和 false函数:and,or,true,false用例:基于零售数据来说明处理布尔类型的方法,可

2021-08-11 09:59:38 974

原创 《Spark先知先觉 》DataFrame 基本结构化操作

模式模式定义DataFrame 的列明以及列的数据类型,它可以由数据源来定义模式,也可以显式地定义。在处理CSV和JSON 等纯文本文件时速度较慢。一个模式是由许多字段构成的StructType。这些字段即为StructField,具有名称、类型、布尔标志(该标志指定该列是否可以包含缺失值或空值),并且用户可指定与该列关联的元数据(metadta)。例子:创建一个DataFrame 并指定模式: // 创建一个 DataFrame 并指定模式Schema // 模式Schema

2021-08-11 08:57:18 412

原创 TopN-spark实现

Spark 实现:唯一键文件输入形式:代码实现如下:package com.hadwinling.chap03import org.apache.spark.{SparkConf, SparkContext}import scala.collection.SortedMapobject TopN { def main(args: Array[String]): Unit = { //1 . 创建环境 val conf = new SparkConf().setMast

2021-04-29 11:55:17 224

原创 leetcode —— 双指针

class Solution { public int removeDuplicates(int[] nums) { int n = nums.length; if(n == 0){ return 0; } int fast = 1,solw = 1; while( fast < n ){ if (nums[fast] != nums[fast-1]){ .

2021-04-19 19:47:33 103

原创 《动手学Flink》——Window

Windows是处理无限流的核心。Windows将流分成有限大小的“存储桶”窗口式Flink程序的一般结构如下所示。第一个片段是指键控流,而第二个片段是指非键控流。可以看到,唯一的区别是对键控流的keyBy(…)调用和对非键控流的window(…)变为windowAll(…)。这还将用作本页面其余部分的路线图。在上面,方括号([…])中的命令是可选的。这表明Flink允许您以多种不同方式自定义窗口逻辑,从而使其最适合您的需求。Window 类型Window 类型可以分成两类:CountWind

2021-04-01 11:08:00 133

原创 《动手学Flink》——Flink Data Transformation (转换算子)

程序与数据流所有的Flink 程序都是由三部分组成:Source,Transformation 和SinkSource: 负责读取数据源数据Transformation:利用各种算子进行处理加工Sink:负责输出。Map 算子:对DataStream进行操作,返回一个新的DataStream将DataStream类型 转化为 DataStream类型。package com.lei.apitest.c02_transformation;import org.apache.flink.

2021-04-01 09:32:26 167

原创 《动手学Flink》——Source

设置java beanspackage com.hadwinling.apitest.beans;/** * @description: 传感器温度读数的数据类型 * @author: hadwinling * @time: 2021/3/28 上午11:24 */public class SensorReading { // 属性 id,时间戳,温度值 private String id ; private Long timestamp; private

2021-03-28 21:04:37 135

转载 在Ubuntu上安装kafka

最近在学习Flink 需要用上kafka访问Kafka官方下载页面,下载稳定版本kafka.此安装包内已经附带zookeeper,不需要额外安装zookeeper.按顺序执行如下步骤:以安装基于scala 版本2.12 为例cd ~/下载sudo tar -zxf kafka_2.12-2.7.0.tgz -C /usr/localcd /usr/localsudo mv kafka_2.11-0.10.1.0/ ./kafkasudo chown -R hadoop ./kafka核心

2021-03-28 15:56:58 1256 1

原创 Springboot 整合Schedule 定时任务

在项目开发过程中,我们经常需要执行具有周期性的任务。通过定时任务可以很好的帮助我们实现。1. 添加依赖 <!--定时任务--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </depende

2021-02-20 20:01:38 225

原创 Springboot整合lotdb ,详细源码

最近接到一个项目,是要使用springboot 整合lotdb 来处理大量的数据相关使用记录:这里使用了lotdb 数据库中的session ,具体jdbc 可以参照lotdb 的开发文档。在使用之前要启动lotdb 服务相关操作如下:进入解压文件的sbin 目录进入shell 操作找到自己的对应的指令3.1 在window 系统下cmd 进入,并输入./start-server.bat3.2在linux 系统进入终端,输入./start-server.sh新建Springb

2021-02-05 21:57:43 1108

原创 时序数据库IoTDB中的JDBC连接

注意:导入的maven 要与自己安装的lotdb版本一致,否则容易出现问题!!!!本文安装的lotdb版本为0.11.2导入的maven为 <dependency> <groupId>org.apache.iotdb</groupId> <artifactId>iotdb-jdbc</artifactId> <version>0.11.2</versi

2021-02-04 22:17:58 979

原创 时序数据库IoTDB安装

安装在ubuntu系统下的安装:下载地址lotdb 选择一个合适的邦本,下载解压成功,cd 进入解压文件夹的sbin目录,然后执行启动服务启动服务命令./start-server.sh启动成功操作IoTDB#使用Cli工具IoTDB为用户提供多种与服务器交互的方式,在此我们介绍使用Cli工具进行写入、查询数据的基本步骤。初始安装后的IoTDB中有一个默认用户:root,默认密码为root。用户可以使用该用户运行Cli工具操作IoTDB。Cli工具启动脚本为sbin文件夹下的star

2021-02-04 22:14:32 1280

原创 时序数据库IoTDB中的DML (数据操作语言)

DML (数据操作语言)数据接入IoTDB为用户提供多种插入实时数据的方式,例如在Cli/Shell工具中直接输入插入数据的INSERT语句,或使用Java API(标准Java JDBC接口)单条或批量执行插入数据的INSERT语句。使用INSERT语句使用INSERT语句可以向指定的已经创建的一条或多条时间序列中插入数据。对于每一条数据,均由一个时间戳类型的时间戳和一个数值或布尔值、字符串类型的传感器采集值组成。在本节的场景实例下,以其中的两个时间序列root.ln.wf02.wt02.sta

2021-02-04 22:13:50 1258 1

原创 时序数据库IoTDB中的DDL (数据定义语言)

DDL (数据定义语言)创建存储组我们可以根据存储模型建立相应的存储组。创建存储组的SQL语句如下所示:IoTDB > set storage group to root.lnIoTDB > set storage group to root.sgcc根据以上两条SQL语句,我们可以创建出两个存储组。需要注意的是,当系统中已经存在某个存储组或存储组的父亲节点或者孩子节点被设置为存储组的情况下,用户不可创建存储组。例如在已经有root.ln和root.sgcc这两个存储组的情况下

2021-02-04 22:13:01 1446

原创 粒子算法pos,scala实现(非粒子类实现)

计算适应值函数 def calaFitness(temp: Array[Double]): Double = { var y: Double = 0.0 for (i <- 0 to dimension-1) { y += temp(i) * temp(i) } return y }初始化粒子操作def Initializes(): Unit = { //初始化位置和速度 for (i <- 0 to numPartic

2020-12-31 13:53:44 138

原创 Spark学习——Spark SQL Learn(Python)

从 Spark2.0 以上版本开始, Spark 使用全新的 SparkSession 接口替代 Spark1.6 中的SQLContext 及HiveContext 接口来实现其对数据加载、转换、处理等功能。 SparkSession 实现了SQLContext 及HiveContext 所有功能。 SparkSession 支持从不同的数据源加载数据,并把数据转换成DataFrame ,并且支持把 DataFrame 转换成 SQLContext 自身中的表 ,然后使用 SQL 语句来操作数据。.

2020-12-05 18:36:05 204 1

原创 Spark学习——键值对RDD (python版)

键值对 RDD 的创建from pyspark import SparkConf ,SparkContextconf = SparkConf().setMaster("local").setAppName("RDDKeyAndValue")sc = SparkContext(conf= conf)第一种创建方式:从文件中加载可以采用多种方式创建键值对 RDD ,其中一种主要方式是使用 map() 函数来实现# 第一种创建方式:从文件中加载# 可以采用多种方式创建键值对 RDD ,其中一种主

2020-12-04 13:03:23 550

原创 Spark学习——RDD Learn(python)

RDD 本质上是一个只读的分区记录集合首先from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local").setAppName("My App")sc = SparkContext(conf = conf)sparkwordcount.txt 的内容如下:1 RDD创建1. 从文件系统中加载数据创建RDDSpark采用textFile()方法来从文件系统中加载数据创建RDD该方法把文件的

2020-12-03 12:32:20 480 1

原创 Hadoop学习——MapRedece 总结

1。输入数据接口:inputFormat默认使用的实现类是:TextInputFormatTextInputFormat 的功能逻辑是:一次度一行文本,然后将该行的其实偏移量作为key,行内容作为value 返回KeyValueTextInputFormat 每一行均为一条记录,被分割符分割为key,value。默认分割符号tab(\t)NLineInputFormat 按照指定的行数N来划分切片CombineTextInputFormat 可以把多个小文件合并成一个切片处理,提高处理效率用户

2020-11-23 19:39:08 286 1

原创 Hadoop学习—— OutputFormat数据输出

文本输出TextOutputFormat默认的输出格式是TextOutputFormat,他把每条记录写为文本行,他的键和值可以是任意类型,因为TextOutputFormat 调用toString() 方法把他们转换为字符串SequenceFileOutputFormat将SequenceFileOutputFormat 输出作为后续mapreduce任务的输入,这便是一种好的输出格式,因为它的格式紧凑,很容易被压缩OutputFormat用户还可以自定义OutputFormat自定义Outp

2020-11-23 19:32:18 200

原创 Hadoop学习——Join

Reduce JoinReduceJoin工作原理:Map端的主要工作:为来自不同表或文件的key/alue 对,打标签以区别不同来源的记录,然后用连接字段作为key,其余部分和新家的标志作为value,最后进行输出Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,只需要在每一个分组当中将那些来源与不同文件的记录(在map阶段已经标志)分开了,最后进行合并就ok了** Reduce Join案例**需求分析通过将关联条件作为Map输出的key,将两表满足Join条件的

2020-11-23 16:54:05 101

原创 Hadoop学习——MapTask工作机制、ReduceTask工作机制、Shuffle机制

(1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。(2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。(3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓.

2020-11-22 14:08:59 199

原创 Hadoop学习—— GroupingComparator分组

GroupingComparator分组(辅助排序)对Reduce阶段的数据根据某一个或几个字段进行分组。分组排序步骤:(1)自定义类继承WritableComparator(2)重写compare()方法@Overridepublic int compare(WritableComparable a, WritableComparable b) { // 比较的业务逻辑 return result;}(3)创建一个构造将比较对象的类传给父类rotected OrderGroup

2020-11-22 14:02:38 211

原创 Hadoop学习——Combiner合并

Combiner是mapreduce程序中Mapper和Reducer之外的一个组件Combiner组件的夫类就是ReducerCombiner和Reducer的区别在于运行的位置Combiner是在每一个MapTask所在的节点运行Reducer是结合艘全局所有Mapper的输出结果Combiner的意义就是在每一个MapTask的输出进行局部汇总,以减少网络传输量Combiner能够应用的前提是不能影响最终的业务逻辑,而且,Combiner的输出kv应该根Reducer的输入kv类型要对应.

2020-11-21 17:39:33 268

原创 Hadoop学习——Partition分区

要求:将统计的结果按照条件输出到不同文件中(分区)。比如:将统计结果按照收集归属地不同省份输出到不同文件中(分区)默认Partition分区默认分区是根据key的hashcode对ReduceTasks个数取模得到的,用户无法控制哪个key存储到哪个分区可以在驱动类中编写如下进行分区操作job.setNumReduceTasks(5);//设置几个分区自定义分区步骤:1. 自定义类继承Partitioner ,重写getPartition()方法public class ProvinceP

2020-11-21 16:17:41 841

原创 Hadoop学习——TextInputormat实现类

TextInputormat实现类Textputormat是默认的FileInputFormat 实现类。按行读取每条记录。键是存储该行在整个文件中的其时字节偏移量,LongWritable类型。值是这行的内容,不包括任何行终止符(换行符和回车符)示例如下:一个的分片包含了如下4条文本记录Rich learning formIntelligent learning engineLearing more convenientFrom the real demand for more close

2020-11-21 14:37:51 106

原创 Hadoop学习—— NLineInputFormat 实现类

NLineInputFormat 实现类使用NLineInputFormat,代表每一个map进程处理的inputSplit 不再按black块去划分,而是按NLineInputFormat 指定的行数N来划分。即输入文件的总行数/N = 切片书。如果不能整除,切片数=商+1示例如下:一个的分片包含了如下4条文本记录Rich learning formIntelligent learning engineLearing more convenientFrom the real demand

2020-11-21 14:30:59 128

原创 Hadoop学习—— KeyValueTextInputFormat 实现类

KeyValueTextInputFormat 实现类每一行均为一条记录,被分割符分割为key,value 。可以通过在驱动类中设置conf.set(KeyValueLineRecordReader.KEY_VALUE_SEPERATOR, " ");// 设置切割符来设定分割符。默认分隔符是(\t)。以下是一个示例,输入是一个包含4条记录的分片,其中——>表示一个(水平方向的)制表符。line1---->Rich learning formline2---->Intell

2020-11-21 14:29:13 213

原创 Hadoop学习——CombineTextInputFormat切片机制

1.需求将输入的大量小文件合并成一个切片统一处理。(1)输入数据准备4个小文件(2)期望期望一个切片处理4个文件2.实现过程(1)不做任何处理,运行1.6节的WordCount案例程序,观察切片个数为4。(2)在WordcountDriver中增加如下代码,运行程序,并观察运行的切片个数为3。(a)驱动类中添加代码如下:// 如果不设置InputFormat,它默认用的是TextInputFormat.classjob.setInputFormatClass(CombineTextIn

2020-11-21 13:42:59 424

原创 获取传入文件夹到图片的路径

/** * 获取传入文件夹到图片的路径 * @param filepath 班级路径 * @param * @return */ public static ArrayList getAllFilePath(String filepath){ filepath = filepath.trim(); ArrayList allpathlist = new ArrayList(); String all.

2020-11-14 13:53:50 134

原创 文件遍历

package com.nanhua.face.read;import java.io.File;/** * 文件遍历 * @author HadwinLing * @version V1.0 * @Package com.nanhua.face.read * @date 2020/11/14 10:33 */public class ReadFiles { private static int initNum=0; public static void main(St

2020-11-14 11:42:16 114

原创 ServerSocketDemo ,简单通信

服务器端package com.hadwinling.socket;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/** * @author HadwinLing * @version V1.0 * @Package com.hadwinling.socket * @date 2020/11/14 10:26 */p

2020-11-14 11:31:24 301

原创 文件上传服务器,serversocket

服务器端package com.hadwinling.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.UUID;/** *

2020-11-14 11:25:12 123

原创 java调用python脚本

package com.hadwinling.demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * @author HadwinLing * @version V1.0 * @Package com.hadwinling.demo * @date 2020/11/11 9:16 */public class demo { publ

2020-11-11 19:12:43 184

原创 Hadoop学习——Hadoop序列化

序列化:将内存中的对象,转化为字节序列(或其他数据传输协议) 以便于存储到磁盘(持久化)和网络传输反序列化:将收到字节序列(或其他数据传输协议)或者是磁盘在的持久化数据,转换成内存中的对象。自定义bean对象实现序列化接口(Writable)具体实现bean对象序列化步骤如下7步。(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造public FlowBean() { super();}(3)重写序列化方法@Overridepublic

2020-11-09 21:33:23 216

gson-2.6.2.zip

gson的jar包

2020-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除