自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(266)
  • 收藏
  • 关注

原创 Leetcode题目汇总

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。1) Array题型733.Flood Fill(对二维数组进行转换) 240.Search2D(查找数字) 57. Insert Interval (向一个区间中插入一个区间) 42. Trapping Rain Water(能装多少水问题..

2021-09-29 16:08:27 122

原创 IMDB数据进行分类

imdb数据集的目标是根据电影评论的文本内容预测评论的情感标签。训练集有20000条电影评论文本,测试集有5000条电影评论文本,其中正面评论和负面评论都各占一半。文本数据预处理较为繁琐,包括中文切词(本示例不涉及),构建词典,编码转换,序列填充,构建数据管道等等。

2018-08-10 20:05:54 310 1

原创 LightGBM 的完整解释 - 最快的梯度提升模型

在寻找最佳特征值来分割树节点时,LightGBM使用特征值直方图,并尝试所有直方图bin值,而不是尝试所有可能的特征值,因此可以减少寻找最佳特征吐出值的时间和计算量。例如,给定下面的年龄特征,将直方图离散特征值放入不同的范围箱中,因此我们可以使用像Age⩽30,Age⩽40,,,,Age⩽100这样的吐槽标准,而不是尝试像Age这样的所有可能的年龄值⩽31、年龄⩽32 等。一般来说,GOSS的主要思想是,在训练下一个集成树之前,我们保留梯度较大的训练实例,并丢弃一些梯度较小的训练实例。

2023-10-29 21:23:24 2215

原创 DataFrame窗口函数操作

DataFrame窗口函数操作

2023-10-19 22:43:06 798

原创 测试PySpark

在这里,通过它写pyspark单元测试,看这个代码通过PySpark built,下载该目录代码,查看JIRA 看板票的pyspark测试

2023-10-16 21:00:00 1210

原创 Spark上使用pandas API快速入门

这是 Spark 上的 pandas API 的简短介绍,主要面向新用户。本笔记本向您展示 pandas 和 Spark 上的 pandas API 之间的一些关键区别。这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。通过传递可转换为类似系列的对象字典来创建 pandas-on-Spark DataFrame。从 Spark DataFrame 创建 pandas-on-Spark DataFrame。以下是如何显示下面框架中的顶行。

2023-10-14 01:00:00 815

原创 Spark连接快速入门

​Spark Connect 为 Spark 引入了解耦的客户端-服务器架构,允许使用DataFrame API远程连接到 Spark 集群。

2023-10-14 00:30:00 1268 1

原创 PySpark 概述

PySpark 是 Apache Spark 的 Python API。它使您能够使用Python在分布式环境中执行实时、大规模的数据处理。它还提供了一个 PySpark shell,用于交互式分析您的数据。

2023-10-12 21:36:03 710

原创 max min greatest least的详解以及用法

1 max和min是聚合函数,如果使用一般需要同步跟一个group by 而greatest 和least则不需要。比如,如果在一个讨论身高的上下文中,"最高" 就指的是身高最大的人,而在讨论价格时,"最高" 就指的是价格最高的物品。所以传入的是一个列名。而greatest和least是求一行里面多列的最大值。所以传入参数是多列.:常用于比较两个或多个事物的特定属性,以决定哪一个在这方面更大或更小。是常用的函数或方法,用于找到数组或列表中的最大值和最小值。例如,在集合 {2, 4, 6, 8} 中,

2023-09-13 19:03:13 310

原创 服务接收Gzip格式数据

2)通过MultipartFile接收。数据压缩后,传给服务器,通过接口传递。1)通过byte[] 数组接收。

2023-08-28 23:30:00 111

原创 sklearn Preprocessing 数据预处理功能

scikit-learn`(或`sklearn`)的数据预处理模块提供了一系列用于处理和准备数据的工具。- `StandardScaler`: 将数据进行标准化,使得每个特征的均值为0,方差为1。- `MinMaxScaler`: 将数据缩放到指定的最小值和最大值之间(通常是0到1)。- `RobustScaler`: 对数据进行缩放,可以抵抗异常值的影响。- `RFE`(递归特征消除):逐步选择特征,通过迭代来识别最重要的特征。- `MaxAbsScaler`: 将数据按特征的绝对值最大缩放。

2023-08-23 22:15:00 1134

原创 LEFT ANTI JOIN的使用

【代码】LEFT ANTI JOIN的使用。

2023-08-21 22:45:00 703

原创 Spark SQL优化:NOT IN子查询优化解决

有如下的数据查询场景。

2023-08-16 17:11:33 1045

原创 hivesql-dayofweek 函数

返回日期或时间戳的星期几。此函数是的同义函数。

2023-08-16 14:22:47 792

原创 percentile_approx 聚合函数

返回组内expr的百分位近似值。此函数是的同义词。

2023-08-15 15:10:40 834

原创 Vim基本操作

Vim的名字是“Vi IMproved”的缩写,它是传统的Unix编辑器Vi的改进版。Vim的设计初衷是提供一个高效、灵活和高度可定制的文本编辑工具。虽然Vim的学习曲线较陡峭,但一旦掌握了其基本操作和功能,用户将能够获得高效的文本编辑体验,尤其对于程序员和系统管理员来说,Vim是一款不可或缺的工具。2. 快捷键和命令:Vim的编辑操作主要通过快捷键和命令来完成,而不是通过菜单和图形界面。9. 强大的编辑功能:Vim支持多级撤销、宏录制、寄存器、自动补全等功能,这些功能使得编辑和处理文本更加高效和便捷。

2023-08-03 21:45:00 170

原创 操作系统 进程和线程?

进程之间相互独立,彼此隔离,因此一个进程的错误通常不会影响其他进程的正常运行。线程是进程内的执行单元,一个进程可以包含多个线程。线程共享进程的地址空间和资源,因此在同一个进程内的线程之间可以更方便地进行数据共享和通信。在多任务处理中,操作系统通过调度进程和线程的执行来实现任务的切换和并发执行,以满足用户的需求。- 进程通信需要使用特定的机制(如管道、消息队列等),线程通信可以直接共享进程内的数据。- 进程是操作系统资源分配的最小单位,而线程是进程的执行单位。- 进程之间相互独立,线程共享同一进程的资源。

2023-08-02 23:15:00 62

原创 查询网络服务和端口

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等;在查询网络端口时,经常会用到这个工具。netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

2023-07-17 15:56:03 853

原创 select、selectExpr函数使用方式

在使用这两个函数时,你可以使用列名、表达式、聚合函数等进行列的选择和计算。表示一个 DataFrame 对象,你需要将其替换为你实际使用的 DataFrame 变量名。另外,如果你使用的是 PySpark,可以使用。函数用于选择一个或多个列,并返回一个新的 DataFrame。它接受一个或多个列名作为参数,或者可以使用列表达式来选择列。它接受一个或多个列表达式作为参数,并返回一个新的 DataFrame。方法接受两个参数:新列的名称和要添加的表达式。模块中的函数来构建列表达式,如示例中的。

2023-06-05 22:00:00 555

原创 ssh 免密码登录配置

这将使用您的私钥进行身份验证,如果一切设置正确,您将无需输入密码即可登录。这将生成一对公钥 (id_rsa.pub) 和私钥 (id_rsa)。是目标主机的 IP 地址或域名。确保将其替换为实际的值。命令,您可以手动将公钥内容复制到目标主机的。如果您仍然遇到问题,可能是由于权限或配置问题。替换为目标主机的 IP 地址或域名。替换为目标主机的用户名,请注意,上述步骤中的。是目标主机的用户名,

2023-05-25 14:41:16 772 1

原创 Hive on Spark调优(大数据技术8)

在Hive中,无论其计算引擎是什么,所有的计算任务都可分为Map阶段和Reduce阶段。默认情况下,Hive会根据Reduce端输入数据的大小,估算一个Reduce并行度。但是在某些情况下,其估计值不一定是最合适的,故需要人为调整其并行度。Reduce端并行度的确定逻辑为,若指定参数mapreduce.job.reduces的值为一个非负整数,则Reduce并行度为指定值。其中,Reduce端输入的数据量大小,是从Reduce上游的Operator的Statistics(统计信息)中获取的。

2023-05-20 09:45:00 915 1

原创 Hive on Spark调优(大数据技术6)

若参与join的表均为分桶表,且关联字段为分桶字段,且分桶字段是有序的,且大表的分桶数量是小表分桶数量的整数倍。此时,就可以以分桶为单位,为每个Map分配任务了,Map端就无需再缓存小表的全表数据了,而只需缓存其所需的分桶。Map端负责读取参与join的表的数据,并按照关联字段进行分区,将其发送到Reduce端,Reduce端完成最终的关联操作。若参与join的表中,有n-1张表足够小,Map端就会缓存小表全部数据,然后扫描另外一张大表,在Map端完成关联操作。162900000000(约160g)

2023-05-19 23:30:00 880

原创 Hive on Spark调优(大数据技术5)

优化思路为map-side聚合。所谓map-side聚合,就是在map端维护一个hash table,利用其完成分区内的、部分的聚合,然后将部分聚合的结果,发送至reduce端,完成最终的聚合。map-side聚合能有效减少shuffle的数据量,提高分组聚合运算的效率。

2023-05-19 07:45:00 172

原创 Hive on Spark调优(大数据技术7)

数据倾斜问题,通常是指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往一个Reduce,进而导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。其原理是启动两个MR任务,第一个MR按照随机数分区,将数据分散发送到Reduce,完成部分聚合,第二个MR按照分组字段分区,完成最终聚合。Hive中的数据倾斜常出现在分组聚合和join操作的场景中,下面分别介绍在上述两种场景下的优化思路。示例SQL语句如下。

2023-05-18 23:30:00 405

原创 Hive on Spark调优(大数据技术4)

每个Stage由一系列的Operator组成,一个Operator代表一个逻辑操作,例如TableScan Operator,Select Operator,Join Operator等。Explain呈现的执行计划,由一系列Stage组成,这个Stage具有依赖关系,每个Stage对应一个MapReduce Job或者Spark Job,或者一个文件系统操作等。Hive SQL的执行计划,可由Explain查看。

2023-05-18 07:30:00 120

原创 Hive on Spark调优(大数据技术3)

在将NodeManager的总内存平均分配给每个Executor,最后再将单个Executor的内存按照大约10:1的比例分配到spark.executor.memory和spark.executor.memoryOverhead。动态分配可根据一个Spark应用的工作负载,动态的调整其所占用的资源(Executor个数)。此处的Executor个数是指分配给一个Spark应用的Executor个数,Executor个数对于Spark应用的执行速度有很大的影响,所以Executor个数的确定十分重要。

2023-05-17 07:30:00 846

原创 Hive on Spark调优(大数据技术9)

合并Map端输入的小文件,是指将多个小文件划分到一个切片中,进而由一个Map Task去处理。目的是防止为单个小文件启动一个Map Task,浪费计算资源。小文件合并优化,分为两个方面,分别是Map端输入的小文件合并,和Reduce端输出的小文件合并。合并Reduce端输出的小文件,是指将多个小文件合并成大文件。目的是减少HDFS小文件数量。

2023-05-14 23:03:04 153

原创 Hive on Spark调优(大数据技术2)

该参数的含义是,单个Container能够使用的最大内存。该参数的含义是,一个NodeManager节点分配给Container使用的CPU核数。该参数的配置,同样取决于NodeManager所在节点的总CPU核数和该节点运行的其他服务。该参数的含义是,一个NodeManager节点分配给Container使用的内存。该参数的配置,取决于NodeManager所在节点的总内存容量和该节点运行的其他服务的数量。需要调整的Yarn参数均与CPU、内存等资源有关,核心配置参数如下。(3)分发该配置文件。

2023-05-14 22:29:18 517

原创 Hive on Spark调优(大数据技术1)

所用集群由5台节点构成,其中2台为master节点,用于部署HDFS的NameNode,Yarn的ResourceManager等角色,另外3台为worker节点,用于部署HDFS的DataNode、Yarn的NodeManager等角色。

2023-05-14 22:23:37 533

原创 完全-背包问题

有n个物品,重量分别为weight[i] (0-n-1),每个物品有无限多个,选择一些物品装入背包,在不超过背包重量w的前提下

2023-01-02 15:30:10 136

原创 0-1 背包问题

对于一组不同重量,不可分割的物品,选择其中一些物品装入背包,能不能正好装满背包?状态:boolean dp[n][w+1] 记录每阶段可达状态

2023-01-01 14:40:26 119

原创 dataframe转成数据保存sparkdataframe,存入Hive中文乱码问题

dataframe转成spark dataframe存储到hive表,发生中文乱码

2022-10-11 23:57:08 552

原创 Streamlit隐藏made the streamlit字体链接

streamlit 去除made with streamlit链接

2022-10-10 00:41:50 886

原创 pyspark报错spark.kryoserializer.buffer.max

跑的任务出现该问题 2.解决方法 通过conf参数设置spark.kryoserializer.buffer.max,spark-submit在提交spark作业时可以带很多参数,其中有一个参数可以设置spark.kryoserializer.buffer.max的大小

2022-07-13 14:16:40 1974

原创 1)Plotly可视化画Scatter图

最近由于工作需要,需要对数据进行一些可视化操作,找到了Plotly库,现在就学习一下plotly进行绘图 2)基础散点图可视化 6)去掉坐标轴 7) 绘制不同颜色

2022-06-05 23:18:24 1800

原创 Pyspark的dataframe写入hive表

pySpark直接存储hive,这里的"dt"是分区字段mode分为"overwrite"'和”append""append”是向表中添加数据"overwrite"是重新建表再写,意味着会删除原本的所有数据,而不仅仅只删除当前分区的数据

2022-05-15 01:15:00 4229

原创 代码中能都用位运算代替的地方

在编写代码时,有几个地方可以考虑使用位运算来代替一般的算术运算,以提高效率。下面列出了一些常见的情况:

2022-02-09 10:30:13 1493

原创 MMOE原理介绍

神经网络的多任务学习已成功用于工业界的大规模应用程序中,例如在视频推荐中,只考虑点击转化率时,会倾向推荐包含标题党、擦边海报的视频;只考虑完成度时,会倾向推荐时间比较短的视频等等。而这些倾向都会影响用户体验,并且可能导致业务长期目标的下降。因此,大家开始尝试引入多个相互关联但又不一致的目标来进行综合考虑建模,并且实践表示,多任务学习在推荐系统中能够提升上下文推荐的效果。但是,常用的多任务模型的预测质量通常对任务之间的关系很敏感,因此,研究特定于任务的目标与任务间关系之间的建模折衷至关重要。...

2021-09-27 21:53:58 6178 1

原创 LeetCode:208. Implement Trie (实现Trie树)

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。相关文章:LeetCode:55. Jump Game(跳远比赛) Leetcode:300. Longest Increasing Subsequence(最大增长序列) LeetCode:560. Subarray Sum Equals K..

2021-05-27 18:04:49 160

原创 LeetCode:57. Insert Interval (向一个区间中插入一个区间)

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。相关文章:LeetCode:55. Jump Game(跳远比赛) Leetcode:300. Longest Increasing Subsequence(最大增长序列) LeetCode:560. Subarray Sum Equals K..

2021-01-19 15:50:26 361

xgboost时间序列预测资源

xgboost时间序列预测资源

2023-10-29

神经网络工具用法,数据在另外一个文档中

1)神经网络基本操作 2) 神经网络构造模型 3) 神经网络代码搭建

2023-10-26

第三章 PyTorch基础:Tensor和Autograd

1) Tensor和Autograd基础 2) tensor的基本操作 3) Autograd的基础操作

2023-10-25

pytorch快速入门文件

1)pytorch的介绍 2)pytorch的基本操作

2023-10-25

pyspark基础知识

pyspark基础知识

2023-10-12

lightGBM预测notebook代码

1)lightGBM预测波士顿房价代码 2)特征重要性可视化 3)模型保存 4)模型加载

2023-10-07

空空如也

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

TA关注的人

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