自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JY631591678的博客

IT界的小学生

  • 博客(42)
  • 收藏
  • 关注

原创 1.Flink简介

Apache Flink- 数据流上的有状态计算1.1 适用所有流式环境Apache Flink 功能强大,支持开发和运行多种不同种类的应用程序。它的主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 不仅可以运行在包括 YARN、 Mesos、Kubernetes 在内的多种资源管理框架上,还支持在裸机集群上独立部署。在启用高可用选项的情况下,它不存在单点失效问题。事实证明,Flink 已经可以扩展到数千核心,其状态可以达到 TB 级别,且仍能保.

2021-03-26 19:03:51 379 1

原创 log4j.properties配置文件

log4j.properties# rootLogger参数分别为:根Logger级别[OFF、ALL、FATAL、ERROR、WARN、INFO、DEBUG或自定义级别],输出器stdout,输出器loglog4j.rootLogger = WARN,stdout,log# 输出信息到控制台log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout = org.apache.log

2021-03-25 16:15:16 205

原创 flink项目pom文件

基于scala开发flink应用的pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/

2021-03-25 16:13:42 1741

原创 028:Python操作PDF文件

PDF是Portable Document Format的缩写,这类文件通常使用.pdf作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。从PDF中提取文本在Python中,可以使用名为PyPDF2的三方库来读取PDF文件,可以使用下面的命令来安装它。pip install PyPDF2 -i https://pypi.doubanio.com/simplePyPDF2没有办法从PDF文档中提取图像、图表或其他媒体,但它可以提取

2020-11-26 15:54:43 248

原创 027:Python读写Excel文件

Excel简介Excel是Microsoft(微软)为使用Windows和macOS操作系统开发的一款电子表格软件。Excel凭借其直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,一直以来都是最为流行的个人计算机数据处理软件。当然,Excel也有很多竞品,例如Google Sheets、LibreOffice Calc、Numbers等,这些竞品基本上也能够兼容Excel,至少能够读写较新版本的Excel文件。掌握用Python程序操作Excel文件,可以让日常办公自动化的工作更加轻松愉快,

2020-11-26 15:54:26 248

原创 026:Python读写CSV文件

CSV文件介绍CSV(Comma Separated Values)全称逗号分隔值文件是一种简单、通用的文件格式,被广泛的应用于应用程序(数据库、电子表格等)数据的导入和导出以及异构系统之间的数据交换。因为CSV是纯文本文件,不管是什么操作系统和编程语言都是可以处理纯文本的,而且很多编程语言中都提供了对读写CSV文件的支持,因此CSV格式在数据处理和数据科学中被广泛应用。CSV文件有以下特点:纯文本,使用某种字符集(如ASCII、Unicode、GB2312)等); 由一条条的记录组成(典型的

2020-11-25 13:58:14 500

原创 025:Python中正则表达式的应用

正则表达式相关知识在编写处理字符串的程时,经常会遇到在一段文本中查找符合某些规则的字符串的需求,正则表达式就是用于描述这些规则的工具,换句话说,可以使用正则表达式来定义字符串的匹配模式,即如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替换掉。举一个简单的例子,如果你在Windows操作系统中使用过文件查找并且在指定文件名时使用过通配符(*和?),那么正则表达式也是与之类似的用 来进行文本匹配的工具,只不过比起通配符正则表达式更强大,它能更精确地描述你的需

2020-11-25 13:48:45 147 1

原创 024:Python对象的序列化和反序列化

读写JSON格式的数据如果希望把一个列表或者一个字典中的数据保存到文件中又该怎么做呢?在Python中,可以将程序中的数据以JSON格式进行保存。JSON是“JavaScript Object Notation”的缩写,它本来是JavaScript语言中创建对象的一种字面量语法,现在已经被广泛的应用于跨语言跨平台的数据交换。使用JSON的原因非常简单,因为它结构紧凑而且是纯文本,任何操作系统和编程语言都能处理纯文本,这就是实现跨语言跨平台数据交换的前提条件。目前JSON基本上已经取代了XML(可扩展标记

2020-11-25 13:42:23 150

原创 023:Python文件读写和异常处理

实际开发中常常会遇到对数据进行持久化的场景,所谓持久化是指将数据从无法长久保存数据的存储介质(通常是内存)转移到可以长久保存数据的存储介质(通常是硬盘)中。实现数据持久化最直接简单的方式就是通过文件系统将数据保存到文件中。计算机的文件系统是一种存储和组织计算机数据的方法,它使得对数据的访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘、光盘、闪存等物理设备的数据块概念,用户使用文件系统来保存数据时,不必关心数据实际保存在硬盘的哪个数据块上,只需要记住这个文件的路径和文件名。在写入新数

2020-11-25 13:22:08 655

原创 022:Python标准库初探

base64 - Base64编解码模块Base64是一种基于64个可打印字符来表示二进制数据的方法。由于$log _{2}64=6$,所以Base64以6个比特(二进制位,可以表示0或1)为一个单元,每个单元对应一个可打印字符。对于3字节(24比特)的二进制数据,我们可以将其处理成对应于4个Base64单元,即3个字节可由4个可打印字符来表示。Base64编码可用来作为电子邮件的传输编码,也可以用于其他需要将二进制数据转成文本字符的场景,这使得在XML、JSON、YAML这些文本数据格式中传输二进制内

2020-11-25 12:57:54 187

原创 021:Python函数的高级应用

装饰器装饰器是Python中用一个函数装饰另外一个函数或类并为其提供额外功能的语法现象。装饰器本身是一个函数,它的参数是被装饰的函数或类,它的返回值是一个带有装饰功能的函数。很显然,装饰器是一个高阶函数,它的参数和返回值都是函数。下面先通过一个简单的例子来说明装饰器的写法和作用,假设已经有名为downlaod和upload的两个函数,分别用于文件的上传和下载,下面的代码用休眠一段随机时间的方式模拟了下载和上传需要花费的时间,并没有联网做上传下载。import randomimport time

2020-11-25 12:48:39 127

原创 020:Python函数使用进阶

关键字参数下面是一个判断传入的三条边长能否构成三角形的函数,在调用函数传入参数时,可以指定参数名,也可以不指定参数名,代码如下所示。def can_form_triangle(a, b, c): print(f'a = {a}, b = {b}, c = {c}') return a + b > c and b + c > a and a + c > b# 调用函数传入参数不指定参数名按位置对号入座print(can_form_triangle(1, 2,

2020-11-25 12:41:12 162

原创 019:使用PyCharm开发Python应用程序

PyCharm的下载和安装可以在JetBrains公司的官方网站找到PyCharm的下载链接,有两个可供下载的版本,一个是社区版(PyCharm CE),一个是专业版(PyCharm Professional)。社区版在Apache许可证下发布,可以免费使用;专业版在专用许可证下发布,需要购买授权后才能使用,但新用户可以试用30天。很显然,专业版提供了更为强大的功能和对企业级开发的各种支持,但是对于初学者来说,社区版已经足够强大和好用了。安装PyCharm只需要直接运行下载的安装程序,然后持续的点击“N

2020-11-25 12:34:31 2884

原创 018:Python面向对象编程应用

案例1:扑克游戏说明:简单起见,我们的扑克只有52张牌(没有大小王),游戏需要将52张牌发到4个玩家的手上,每个玩家手上有13张牌,按照黑桃、红心、草花、方块的顺序和点数从小到大排列,暂时不实现其他的功能。使用面向对象编程方法,首先需要从问题的需求中找到对象并抽象出对应的类,此外还要找到对象的属性和行为。当然,这件事情并不是特别困难,可以从需求的描述中找出名词和动词,名词通常就是对象或者是对象的属性,而动词通常是对象的行为。扑克游戏中至少应该有三类对象,分别是牌、扑克和玩家,牌、扑克、玩家三个类

2020-11-25 12:23:35 706

原创 017:Python面向对象编程进阶

可见性和属性装饰器在很多面向对象编程语言中,对象的属性通常会被设置为私有(private)或受保护(protected)的成员,简单的说就是不允许直接访问这些属性;对象的方法通常都是公开的(public),因为公开的方法是对象能够接受的消息,也是对象暴露给外界的调用接口,这就是所谓的访问可见性。在Python中,可以通过给对象属性名添加前缀下划线的方式来说明属性的访问可见性,例如,可以用__name表示一个私有属性,_name表示一个受保护属性,代码如下所示。class Student:

2020-11-25 11:51:20 162

原创 016:Python面向对象编程入门

类和对象如果要用一句话来概括面向对象编程,我认为下面的说法是相当精准的。面向对象编程:把一组数据和处理数据的方法组成对象,把行为相同的对象归纳为类,通过封装隐藏对象的内部细节,通过继承实现类的特化和泛化,通过多态实现基于对象类型的动态分派。关键词:对象(object)、类(class)、封装(encapsulation)、继承(inheritance)、多态(polymorphism)。先说说类和对象这两个词。在面向对象编程中,类是一个抽象的概念,对象是一个具体的概念。我们把同一类对象的

2020-11-23 19:17:31 145

原创 015:Python常用数据结构之字典

Python程序中的字典跟现实生活中的字典很像,它以键值对(键和值的组合)的方式把数据组织到一起,我们可以通过键找到与之对应的值并进行操作。就像《新华字典》中,每个字(键)都有与它对应的解释(值)一样,每个字和它的解释合在一起就是字典中的一个条目,而字典中通常包含了很多个这样的条目。创建和使用字典在Python中创建字典可以使用{}字面量语法。但是字典的{}中的元素是以键值对的形式存在的,每个元素由:分隔的两个值构成,:前面是键,:后面是值,代码如下所示。xinhua = { '麓':

2020-11-23 18:09:12 212

原创 014:Python常用数据结构之集合

集合(set)的定义是“把一定范围的、确定的、可以区别的事物当作一个整体来看待”,集合中的各个事物通常称为集合的元素。集合应该满足以下特性:无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。Python程序中的集合跟数学上的集合是完全一致的,需要强调的是上面所说的无序性和互异性。无序性说明集合中的元

2020-11-23 17:17:19 437

原创 013:Python列表和元组的应用

案例1:成绩表和平均分统计说明:录入5个学生3门课程的考试成绩,计算每个学生的平均分和每门课的平均分。"""录入5个学生3门课程的考试成绩计算每个学生的平均分和每门课的平均分"""names = ['关羽', '张飞', '赵云', '马超', '黄忠']courses = ['语文', '数学', '英语']# 用生成式创建嵌套的列表保存5个学生3门课程的成绩scores = [[0] * len(courses) for _ in range(len(names))]# 录

2020-11-23 16:45:23 1066 1

原创 012:Python常用数据结构之元组

定义和使用元组在Python中,元组也是多个元素按照一定的顺序构成的序列。元组和列表的不同之处在于,元组是不可变类型,这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元素的值也不能进行修改。定义元组通常使用()字面量语法。元组类型支持的运算符跟列表是一样。下面的代码演示了元组的定义和运算。# 定义一个三元组t1 = (30, 10, 55)# 定义一个四元组t2 = ('小九', 40, True, '河南郑州')# 查看变量的类型print(type(t1), ty

2020-11-23 16:39:14 620

原创 011:Python常用数据结构之列表

定义和使用列表在Python中,列表是由一系元素按特定顺序构成的数据序列,这样就意味着定义一个列表类型的变量,可以保存多个数据,而且允许有重复的数据。跟字符串类型一样,列表也是一种结构化的、非标量类型,操作一个列表类型的变量,除了可以使用运算符还可以使用它的方法。在Python中,可以使用[]字面量语法来定义列表,列表中的多个元素用逗号进行分隔,代码如下所示。items1 = [35, 12, 99, 68, 55, 87]items2 = ['Python', 'Java', 'Go',

2020-11-23 16:22:13 231

原创 010:Python函数和字符串的应用

例子1:设计一个生成指定长度验证码的函数。说明:验证码由数字和英文大小写字母构成。import randomALL_CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'def generate_code(code_len=4): """生成指定长度的验证码 :param code_len: 验证码的长度(默认4个字符) :return: 由大小写英文字母和数字构成的随机

2020-11-23 15:58:40 118

原创 Flink Table & SQL概念与通用 API

Table API 和 SQL 程序的结构所有用于批处理和流处理的 Table API 和 SQL 程序都遵循相同的模式。下面的代码示例展示了 Table API 和 SQL 程序的通用结构// 创建TableEnvironmentval tableEnv = ... // 创建表tableEnv.connect(...).createTemporaryTable("table1")// 注册一张输出表tableEnv.connect(...).createTemporaryTable

2020-08-28 21:28:17 226

原创 Flink Table API & SQL概览

Apache Flink 有两种关系型 API 来做流批统一处理:Table API 和 SQL。Table API 是用于 Scala 和 Java 语言的查询API,它可以用一种非常直观的方式来组合使用选取、过滤、join 等关系型算子。Flink SQL 是基于Apache Calcite来实现的标准 SQL。这两种 API 中的查询对于批(DataSet)和流(DataStream)的输入有相同的语义,也会产生同样的计算结果。Table API 和 SQL 两种 API 是紧密集成的,以及 ..

2020-08-26 16:15:01 98

原创 1.DataStream API-概念

1.什么是DataStreamDataStream API的名称来自特殊的DataStream类,该类用于表示Flink程序中的数据集合。可以将它想像成包含重复项的不可变数据集合。此数据集合可以是有界的,也可以是无界的,用于处理它们的API是相同的。在用法方面,DataStream与常规Java Collection相似,但在某些关键方面有很大不同。DataStream是不可变的,一旦创建就无法添加或删除元素。只能使用DataStream API操作(transformations)对其进行处理。

2020-08-25 21:25:41 228

原创 SQL高频面试题

第一题数据1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 85建表语句create table score( uid string ,subject_id string ,score int)row format delimited fields terminated by '\t';load data loc

2020-07-26 18:44:26 502

原创 009:Python字符串的使用

字符串的定义所谓字符串,就是由零个或多个字符组成的有限序列,一般记为:在Python程序中,如果把单个或多个字符用单引号或者双引号包围起来,就可以表示一个字符串。字符串中的字符可以是特殊符号、英文字母、中文字符、日文的平假名或片假名、希腊字母、Emoji字符等。s1 = 'hello, world!'s2 = "你好,世界!"print(s1, s2)# 以三个双引号或单引号开头的字符串可以折行s3 = '''hello, world!'''print(s3, end=''

2020-06-02 13:56:23 1066

原创 008:Python函数和模块

先来研究一道数学题,请说出下面的方程有多少组正整数解。你可能已经想到了,这个问题其实等同于将8个苹果分成四组且每组至少一个苹果有多少种方案,因此该问题还可以进一步等价于在分隔8个苹果的7个空隙之间插入三个隔板将苹果分成四组有多少种方案,也就是从7个空隙选出3个空隙放入隔板的组合数,所以答案是C(7,3)=35。组合数的计算公式如下所示。根据前面学习的知识,可以用循环做累乘的方式来计算阶乘,那么通过下面的Python代码我们就可以计算出组合数C(M,N)的值,代码如下所示。"""输入M

2020-06-02 13:45:06 648

原创 007:Python分支和循环结构的应用

分支和循环结构的重要性不言而喻,它是构造程序逻辑的基础,对于初学者来说也是相对困难的部分。大部分初学者在学习了分支和循环结构后都能理解它们的用途和用法,但是遇到实际问题的时候又无法下手;看懂别人的代码很容易,但是要自己写出同样的代码却又很难。如果你也有同样的问题和困惑,千万不要沮丧,这只是因为你才刚刚开始编程之旅,你的练习量还没有达到让你可以随心所欲的写出代码的程度,只要加强编程练习,这个问题迟早都会解决的。下面是一些经典的案例。经典小案例例子1:寻找水仙花数。说明:水仙花数也被称为超完全数字

2020-06-02 11:41:46 376

原创 006:Python循环结构

循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。for-in循环如果明确的知道循环执行的次数,我们推荐使用for-in循环,例如计算1到100的和。 被for-in循环控制的语句块也是通过缩进的方式来确定的,这一点跟分支结构完全相同,大家看看下面的代码就明白了。"""用for循环实现1~100求和"""total = 0for x in range(1, 101): total += x

2020-06-02 11:35:38 357

原创 005:Python分支结构

if语句的使用在Python中,要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名。下面的例子中演示了如何构造一个分支结构。"""用户身份验证"""username = input('请输入用户名: ')password = input('请输入口令: ')# 用户名是admin且密码是123456则身份验证成功否则身份验证失败if username == 'admin'

2020-06-02 11:30:26 227

原创 004:Python语言元素之运算符

运算符 描述 [] [:] 下标,切片 ** 指数 ~ + - 按位取反, 正负号 * / % // 乘,除,模,整除 + - 加,减 >> << 右移,左移 & 按位与 ^ \| 按位异或,按位或 <= < > >= 小于等于,小于,大于,大于等于 == != 等于,不等于 is is not 身份运算符 in not in

2020-06-02 11:24:40 776

原创 003:Python语言元素之变量

程序是指令的集合,写程序就是用指令控制计算机做我们想让它做的事情。那么,为什么要用Python语言来写程序呢?因为Python语言简单优雅,相比C、C++、Java这样的编程语言,Python对初学者更加友好,当然这并不是说Python不像其他语言那样强大,Python几乎是无所不能的,Python可以用于服务器程序开发、云平台开发、数据分析、机器学习等各个领域。当然,Python语言还可以用来粘合其他语言开发的系统,所以也经常被戏称为“胶水语言”。一些计算机常识学习之前,先来科普一些计算机的基础知

2020-06-02 11:06:40 358

原创 002:第一个Python程序

编写代码的工具交互式环境我们打开Windows的“命令行提示符”工具,输入命令python然后回车就可以进入到Python的交互式环境中。所谓交互式环境,就是我们输入一行代码回车,代码马上会被执行,如果代码有产出结果,那么结果会被显示在窗口中。例如:Python 3.7.6Type "help", "copyright", "credits" or "license" for more information.>>> 2 * 36>>> 2 + 3

2020-06-02 10:22:54 157

原创 001:初识Python

Python简介Python是由荷兰人吉多·范罗苏姆(Guido von Rossum,后面都称呼他为Guido)发明的一种编程语言。Python的历史 1989年圣诞节:Guido开始写Python语言的编译器。 1991年2月:第一个Python解释器诞生,它是用C语言实现的,可以调用C语言的库函数。 1994年1月:Python 1.0正式发布。 2000年10月:Python 2.0发布,Python的整个开发过程更加透明,生态圈开始慢慢形成。

2020-06-02 10:15:07 130

原创 Hadoop环境搭建

1. Hadoop运行环境搭建1.1 虚拟机环境准备1. 克隆虚拟机2. 修改克隆虚拟机的静态IP3. 修改主机名4. 关闭防火墙5. 创建shenyang用户6. 配置shenyang用户具有root权限(详见我的另外一篇博客博客地址)7.在/opt目录下创建文件夹(1)在/opt目录下创建module、software文件夹...

2020-05-25 01:07:32 868

原创 Linux安装、配置、使用

1. Linux介绍Linux的创始人是Linus Torvalds linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,很多企业级的项目都会部署到Linux/unix系统上Linux主要的发行版:Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE2. VM和Linux的安装2.1VMware安装VMware官网地址选择要下载的版本安装即可安装比较简单这里不.

2020-05-24 01:50:17 1802

原创 SQL快速入门

http://note.youdao.com/noteshare?id=72703a27f3bd1d6bb0817b839d370dad&sub=WEB8beb2c6a204afe3afbfb6f01abbfae65

2020-05-22 01:05:12 170

原创 第4章 Scala程序流程控制

4.1 程序流程控制分类① 顺序控制② 分支控制③ 循环控制4.2 顺序控制4.2.1顺序控制介绍程序从上到下逐行地执行,中间没有任何判断和跳转。4.2.2 顺序控制举例和注意事项Scala中定义变量时采用合法的前向引用。如:def main(args : Array[String]) : Unit = { var num1 = 12 var num2 = num1 + 2}错误形式:def main(args : Array[Strin

2020-05-15 01:32:45 585

原创 第3章 Scala运算符

3.1 算术运算符3.1.1 算数运算符一览 运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4; -b -4 + 加 5+5 10 -

2020-05-14 23:53:51 349

空空如也

空空如也

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

TA关注的人

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