yisun123456
码龄10年
  • 652,419
    被访问
  • 68
    原创
  • 49,655
    排名
  • 66
    粉丝
关注
提问 私信

个人简介:大数据开发、个性化推荐

  • 加入CSDN时间: 2012-08-21
博客简介:

yisun123456的博客

查看详细资料
  • 4
    领奖
    总分 708 当月 4
个人成就
  • 获得114次点赞
  • 内容获得41次评论
  • 获得534次收藏
创作历程
  • 1篇
    2022年
  • 9篇
    2021年
  • 16篇
    2020年
  • 64篇
    2019年
  • 73篇
    2018年
  • 99篇
    2017年
成就勋章
TA的专栏
  • python
    8篇
  • tensorflow
    5篇
  • mongodb
    81篇
  • spark
    49篇
  • kafka
    3篇
  • spring
    6篇
  • java
    27篇
  • 页面
  • sqoop
    3篇
  • oracle
    5篇
  • mysql
    3篇
  • tomcat
    1篇
  • hadoop
    15篇
  • hive
    47篇
  • hbase
    3篇
  • storm
  • linux
    17篇
  • ML
    11篇
  • redis
    1篇
兴趣领域 设置
  • 人工智能
    机器学习
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

pyspark.sql之实现collect_list的排序

通过利用pyspark.sql.Window实现collect_list的排序window_ = Window.partitionBy("userid").orderBy("stay_start_time")df42= df3.join(df41,'userid','inner').withColumn('lng_lat',concat_ws(',',col('stay_lng'),col('stay_lat')))\.withColumn("lng_lats",F.collect_list("ln
原创
发布博客 4 小时前 ·
1 阅读 ·
0 点赞 ·
0 评论

python dataframe计算日期对应的周数或者星期几

import pandas as pdimport datetimea=['20211001','20211002','20211003','20211003','20211004']df=pd.DataFrame(a,columns=['t'])df['t2'] = pd.to_datetime(df['t'])df['day_of_week'] = pd.to_datetime(df['t']).dt.weekdf['week'] = df['t2'].dt.weekdaydf['wee.
原创
发布博客 2021.11.17 ·
1051 阅读 ·
1 点赞 ·
0 评论

模型训练的auc和loss比较问题

AUC 反应的是正样本在负样本前面的概率问题,AUC越大,说明正样本更靠前。LOSS 反应的是真实值与预测值之前的差值,就是损失,LOSS越小,说明预测值越接近于真实值。在二分类问题中,LOSS越小,说明预测的样本预测值两极占比高(负样本更接近0,正样本更接近1)例如:两个模型A B,一个auc高一些,但log也大一些。另一个auc低,但log也低。A模型AUC高,说明它在判断哪个更好的方面,有着更好的表现,但是可能它比较“保守”,预估分都接近于正负样本的比例值(比如ctr=0.1,则预估分接近0
原创
发布博客 2021.11.04 ·
691 阅读 ·
0 点赞 ·
0 评论

Python 多线程读取多文件

# -*- coding:utf-8 -*-import pandas as pdimport osfrom concurrent.futures.thread import ThreadPoolExecutorfrom concurrent.futures._base import as_completeddef get_single_data(cur_path): return pd.read_csv(cur_path)def get_all_data(file_dir):.
原创
发布博客 2021.09.17 ·
291 阅读 ·
0 点赞 ·
0 评论

python 读取目录下多个文件方式对比

1.速度最快def get_sample(file_dir): all_file_list = os.listdir(file_dir) data_frame_list = [] for single_file in all_file_list: cur_path = os.path.join(file_dir, single_file) if "_SUCCESS" in cur_path or "_COPYING_" in cur_path:
原创
发布博客 2021.09.16 ·
36 阅读 ·
0 点赞 ·
0 评论

pyspark jieba 集群模型 对文本进行切词

如果是单个机器或者是local模式,简单的方式就是在节点上pip install jieba就完事了。但是在集群上肯定不能安装啊。怎么办呢??spark可以使用自己的镜像。比如本地有一个conda的envs的环境。可以将这个打包,在提交任务的时候可以分发到各个executor上。spark-submit \--name seg_tags \--queue root.niubi_queue\--deploy-mode cluster \--driver-memory 10g \-.
原创
发布博客 2021.09.09 ·
99 阅读 ·
0 点赞 ·
0 评论

keras使用class weight和sample weight处理不平衡问题

在机器学习或者深度学习中,经常会遇到正负样本不平衡问题,尤其是广告、push等场景,正负样本严重不平衡。常规的就是上采样和下采样。这里介绍Keras中的两个参数class_weight和sample_weight1、class_weight 对训练集中的每个类别加一个权重,如果是大类别样本多那么可以设置低的权重,反之可以设置大的权重值2、sample_weight 对每个样本加权中,思路与上面类似。样本多的类别样本权重低例如 model.fit(class_weight={0:1.,1:
原创
发布博客 2021.08.03 ·
417 阅读 ·
1 点赞 ·
2 评论

smote 采样

对于正负样本严重不平衡的训练集,可以采用下面的办法进行采样# 使用sklearn的make_classification生成不平衡数据样本from sklearn.datasets import make_classification# 生成一组0和1比例为9比1的样本,X为特征,y为对应的标签X, y = make_classification(n_classes=2, class_sep=2, weights=[0.9, 0.1], n_i...
原创
发布博客 2021.07.23 ·
231 阅读 ·
0 点赞 ·
0 评论

mac python环境搭建

一、对于Mac 默认是pip3,为了方便,同时安装pip2,脚本是get-pip.py。然后执行相应的sudo python get-pip.py分别使用pip 和pip3因为是pycharm上切换的两个环境,所以在使用时分别进行下载安装包。二、对于报错ERROR: Command errored out with exit status 1:可以安装pandas和numpy,但是安装scipy和sklearn报错最终解决方式:pip install --upgrade
原创
发布博客 2021.07.07 ·
82 阅读 ·
0 点赞 ·
0 评论

scala 内部类使用小细节

对于Java 外部类调用内部类不用担心类别问题。比如outer1.foo(inner2)但是对于Scala 需要进行类型投影 也就是outer1.foo(inner2)是执行不了的,需要对foo(in:Outer#Inner)
原创
发布博客 2021.03.01 ·
36 阅读 ·
0 点赞 ·
0 评论

链表翻转 全翻转 部分翻转

public class ListReverse {class Node {int val;Node next;public Node(int val) {this.val = val;}}//链表翻转//递归public Node reverse(Node head) {if (head == null || head.next == null) return head;//后续遍历Node last = reverse(head.next);//将头节点放在其子节点的后面h
原创
发布博客 2020.12.20 ·
68 阅读 ·
0 点赞 ·
0 评论

回溯算法 全排列和N皇后

import java.util.LinkedList;import java.util.List;/**Author: ***Date: 2020/12/18 14:52Version 1.0*/public class AllSort {static List<List> res = new LinkedList<>();public static void main(String[] args) {int[] nums = {1, 2, 3};permu
原创
发布博客 2020.12.18 ·
50 阅读 ·
0 点赞 ·
1 评论

hive stage job等划分

1.通过explain可以清晰的看到stage划分。常见的是各个算子(join groupby orderby 等有shuffle)或者是一些filter where等。2.基于上面的1就可以划分出stage。但是有些stage并不会执行,或者说经过优化器后的filter where会在其他stage里进行。这样,有些stage就是空的stage。3.基于stage划分,如何确定job数量(总数就是stage数量)。主要是看哪些stage会执行。只有需要执行的stage才会提交yarn,生成具体的j
原创
发布博客 2020.12.18 ·
2051 阅读 ·
0 点赞 ·
0 评论

spark shuffle

Shuffle 是数据从map端到reduce数据流转的一种形式,当发生join、groupby等操作的时候,父类数据将会根据key进行shuffle write当本地,然后reduce根据相同key进行shuffle read,这样就产生了同一个父RDD可能存在于多个子RDD中。在这个过程中主要有两种shuffle形式,hashshuffle是很早之前的一种方案,在map段进行shuffle write的时候,会产生大量的小文件,这会造成大量的IO开销,很容易造成找不到文件而报错,这时只能重跑stag
原创
发布博客 2020.12.01 ·
21 阅读 ·
0 点赞 ·
0 评论

DNN反向传播计算过程

根据初始化参数,正向计算各个神经元输出1.使用relu作为激活函数,如果输入值是小于等于,偏导将会是0,也就是不会更新梯度;如果输入是大与0,梯度是1以LR为例,假设使用relu作为激活函数,继续学习。很明显 如果权重初始化为0 这个神经元将不会得到更新 (更新公式:w1=w1-a*w1梯度)2.如果激活函数是sigmoid,这样即使初始化权重全部是0,但梯度不会全部是0(sigmoid梯度=sig(1-sig))综上,对深度网络如果某一层初始化权重全部是0,且使用了relu作.
原创
发布博客 2020.11.11 ·
107 阅读 ·
1 点赞 ·
0 评论

hive通过union all 实现 join

对于join操作,需要shuffle,在reduce端进行。所以对于数据量超大,比如两个表记录条数均在亿级别的,往往会导致计算时间过长。那如何可以高效的完成呢?就是将关联操作尽量的迁移到map端。具体做法:selectuid,COALESCE(a,null) as a,COALESCE(b,null) as bfrom(select uid, a,null as b from table1 -- uid 唯一union allselect uid , null ...
原创
发布博客 2020.11.07 ·
340 阅读 ·
0 点赞 ·
1 评论

rdd.cache()和rdd.persist(Storage.MEMORY_ONLY)

rdd.cache()和rdd.persist(Storage.MEMORY_ONLY)cache 底层也是调用了persist,但是当内存不足时 persist会吃就会到磁盘,但是cache不会。所以在绝大数场景下最好使用persist
原创
发布博客 2020.11.07 ·
132 阅读 ·
0 点赞 ·
0 评论

python 创建2维数组

对于初学者,python提供了方便的数组创建方式1.res=[[1] *3 ] *3[[1,1,1],[1,1,1],[1,1,1]]看起来没什么问题,但是这种方式的创建 实际上左边数组的3次复制(指针、地址) 在修改任意一个元素时,其他对应位置上的元素也会变动2.res=[[1] * 3 for i in range(3)] 这种方式 每个内部数组,会在新的迭代中新建,也就是说会开辟新的指针/地址。在任意修改一个元素时,只会作用当前元素。3.也可以使用np创建数组res=np.o.
原创
发布博客 2020.10.28 ·
392 阅读 ·
0 点赞 ·
0 评论

记 hive增加字段不完全生效

使用公司内部中控平台,对已有hive在最后位置增加一个字段,hive文件格式是parquet,增加的字段类型是array<string>。通过spark读取文件,确定已经写入新增的字段值。通过中控平台上的hivesql查询,该字段一直是空null。通过中控平台上的sparksql查询,报错(之前的数据不存在)。解决办法:1.删掉该新增字段,发现中控平台报错不了。放弃2.对刚才写入的分区,删掉并重建该分区。(外部表)。问题解决。坑。。。。...
原创
发布博客 2020.10.27 ·
228 阅读 ·
0 点赞 ·
0 评论

hive MapReduce Timed out after 600 secs

mapred.task.timeout参数说明 该参数默认为 600秒(60000 ms) 。 如果map或reduce方法在600秒内没有返回或,TaskTracker将认为相应的task已经死亡。 并向JobTracker汇报错误。JobTracker会kill 当前task,并在其他节点上重新执行它。如果多次尝试均失败,那整个job就失败返回可以调节该参数在当前任务中的数值,set mapred.task.timeout=1800000; (60000*30) 300min...
原创
发布博客 2020.10.21 ·
837 阅读 ·
0 点赞 ·
0 评论
加载更多