![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
samoyan
分享技术成长的日常
展开
-
使用PySpark处理DataFrame以拆分数组列
问题:用pyspark 处理df1,df1 有三列,第一列是商品pid,第二列是商品name,第三列是候选标品cid_list(有多个cid),将df1中的cid_list拆开,转换成一个商品id和name对应一个cid,但是有多行在这段代码中,explode函数用于将cid_list数组中的每个元素拆分为单独的行。同时,select函数用于选择pid和name列,确保在结果DataFrame中,每个商品的ID和名称都与一个候选标品的CID相对应。原创 2024-02-04 14:42:59 · 744 阅读 · 0 评论 -
Spark: 检查数据倾斜的方法以及解决方法总结
如果预先知道数据分布不均,可以使用自定义分区器来优化数据分布,从而避免数据倾斜。以上方法可以帮助检测和分析Spark作业中可能存在的数据倾斜问题。在发现数据倾斜后,可以采取相应的优化措施,比如调整并行度、使用广播变量、重新设计数据分区策略等,来减轻或解决数据倾斜的问题。原创 2024-01-11 17:24:02 · 1589 阅读 · 0 评论 -
pyspark 使用udf 进行预测,发现只起了一个计算节点
应用范围专门针对Spark SQL中的shuffle操作;而适用于所有RDD的默认分区数。默认值: 两者的默认值不同,且取决于不同的条件。调整时机: 对的调整通常是为了优化特定的Spark SQL查询性能;而调整则是为了影响整个Spark应用中的并行度。影响范围只影响SQL查询中的shuffle阶段;则影响所有RDD的默认分区和并行任务。在实际应用中,这两个参数可以根据需要分别调整,以达到最佳的资源利用率和性能。通常,对于Spark SQL任务,优先考虑调整;而对于基于RDD的操作,则关注。原创 2024-01-11 16:58:28 · 879 阅读 · 0 评论 -
一个汉字在python2 和 python3 中分别以 gbk和utf-8中分别占几个字节,和unicode 关系
在GBK编码中,无论是Python 2还是Python 3,一个汉字都占用2个字节。在UTF-8编码中,无论是Python 2还是Python 3,一个汉字通常占用3个字节。原创 2024-01-08 10:51:21 · 563 阅读 · 0 评论 -
使用pyspark 的udf进行tensorflow 模型的预测报错 _pickle.PicklingError: Could not serialize object:
这个原因可能在于tf 的对象以及代码逻辑不支持序列化,或者需要专门的序列化操作,,,为了解决问题,将tf的代码逻辑放到一个新的文件当中,暴露一个预测接口,,将pyspark代码放到一个文件中,然后在pyspark代码中引入该接口,将其转成udf即可。具体报错: _pickle.PicklingError: Could not serialize object: TypeError: can't pickle _thread.RLock objects。之后就可以正常运行了。原创 2023-03-10 20:10:39 · 1414 阅读 · 1 评论 -
一个计算上亿个向量与上千个向量cos距离的pysqark代码的示例
【代码】一个计算上亿个向量与上千个向量cos距离的pysqark代码的示例。原创 2023-03-06 14:58:01 · 264 阅读 · 2 评论 -
给一个已经存在的excel增加额外的sheet页面
通过这种方法,可以在一个已经存在的excel里增加一个新的sheet页面。1、使用pandas的to_excel,会覆盖原来的excel表,原创 2023-02-16 11:29:36 · 1570 阅读 · 0 评论 -
lightgbm模型的训练参数含义
【代码】lightgbm的训练参数记录。原创 2022-12-30 14:22:33 · 1451 阅读 · 0 评论 -
ModuleNotFoundError: No module named ‘tqdm.auto‘
查看tqdm的版本,将tqdm版本调整到4.45.0即可。原创 2022-12-21 10:19:55 · 5058 阅读 · 3 评论 -
从json文件读取内容和写json到文件代码
【代码】从json文件读取内容和写json到文件代码。原创 2022-09-08 16:45:07 · 287 阅读 · 0 评论 -
ner 使用focal loss示例
import numpy as npdef get_one_hot(labels): #类别 num_classes = 3 #one_hot编码 one_hot_codes = np.eye(num_classes) one_hot_labels = [] for label in labels: #将连续的整型值映射为one_hot编码 one_hot_label = one_hot_codes[label] one_hot_labels.append(one_hot_l.原创 2022-03-29 17:51:58 · 2405 阅读 · 0 评论 -
通过sse 寻找kmean 的k 值
# -*- coding: utf-8 -*-"""K-means-Single-Test"""import matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom tools.preprocess import *from tools.visualizer import plot_resultfrom sklearn.feature_extraction.text import TfidfTransformer, Tf.原创 2022-03-17 11:52:14 · 1959 阅读 · 0 评论 -
python 手动实现gelu,sigmod
import matplotlib.pyplot as pltimport numpy as npdef sigmod(x): return 1.0/(1+np.exp(-x))def gelu(x): # gelu 为高斯误差线性单元,gelu(x) = xΦ(x),Φ(x) 正态分布的累积分布函数Φ(x)没有解析表达式,它的值可以通过数值积分、泰勒级数、或者渐近序列近似得到。 # return 0.5*x*(1+ np.tanh(np.sqrt(2/np.pi)*(x.原创 2021-12-14 16:52:20 · 2779 阅读 · 0 评论 -
python 手动实现维特比解码(可用于序列标注解码)
# 维特比解码# 输入模型 lamda = (A,B,pi),以及观测序列 O(大写英文字母O)# A 为隐藏状态转移概率矩阵,B 为 从隐藏状态到观测状态的发射概率矩阵,pi 为隐藏状态的初始概率# 输入例子:import numpy as np# A 代表选择三个盒子之间的转移概率,为N*N 的方针,盒子序号1,2,3,没有0A = np.array([[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], .原创 2021-12-06 16:34:52 · 1713 阅读 · 1 评论 -
python 手动实现kmeans
import timeimport numpy as npfrom sklearn.datasets import make_blobsdef euclidean_distance(a, b): # 计算两个向量之间的欧氏距离 return np.sqrt(np.sum(np.power(a-b, 2), axis=-1))def init_centers(x, k, seed=None): #! 随机初始化 k 个中心点 if seed is not None:.原创 2021-11-23 11:31:21 · 1036 阅读 · 0 评论 -
python实现dropout
主要是使用二项分布np.random.binomial() 生成对应的序列。import numpy as npdef dropout(input_data,prob): if prob < 0 or prob > 1: raise "error" retain_prob = 1- prob sample = np.random.binomial(1,retain_prob,input_data.shape) x = input_dat.原创 2021-11-12 17:58:54 · 2028 阅读 · 1 评论 -
手动Python实现逻辑回归LR
LR的基本思想是基于极大似然估计进行的:# 导入相应的库import numpy as npimport matplotlib.pyplot as plt# 随机生成样本数据。 二分类问题,每一个类别生成5000个样本数据np.random.seed(12)num_observations = 5000x1 = np.random.multivariate_normal([0, 0], [[1, .75],[.75, 1]], num_observations)x2 = np.rand原创 2021-10-18 11:19:54 · 1180 阅读 · 1 评论 -
AUC的含义以及Python代码手动实现
主要以二分类为例,AUC曲线是ROC曲线下方的面积。ROC曲线的横坐标是假阳率,纵坐标是真阳率。AUC 的计算1)将所有正样本pos1,pos2,,,posm与所有负样本neg1,neg2,negn组成m*n样本对;2)若正样本的预测概率大于负样本的预测概率,计数count增加1;若相等,计数count增加0.5,否则增加0;3)AUC = count/m*n;import numpy as npfrom sklearn.metrics import roc_curvefrom原创 2021-10-14 17:28:29 · 765 阅读 · 0 评论 -
字符串查找in 和 re.search 以及string.find 效率比较
import refrom timeit import timeit def str_find(string, text): if string.find(text): pass def re_find(string, text): if re.search(text, string): pass def in_find(string, text): if text in string: pass print( ti.原创 2021-08-09 11:23:55 · 1134 阅读 · 1 评论 -
python 实现 Trie 树并返回句子搜索命中的词
import collectionsclass TrieNode: def __init__(self): self.children = collections.defaultdict(TrieNode) self.is_word = Falseclass Trie: """ In fact, this Trie is a letter three. root is a fake node, its function is only.原创 2021-07-07 11:33:27 · 416 阅读 · 1 评论 -
Python 处理postman构造的http服务的各种请求
方式一:1、postman构造的形式如下:2、解析方法 defpost(self):reqp=reqparse.RequestParser()reqp.add_argument('file_id')agr=reqp.parse_args()file_id=agr.get('file_id')key_dict=agr.get('key_dict')...原创 2021-06-24 17:39:26 · 392 阅读 · 1 评论 -
ValueError: `generator` yielded an element of shape (2,) where an element of shape (?, ?) was expect
使用dataset = tf.data.Dataset.from_generator 构造网络的输入出现(1) Invalid argument: ValueError: `generator` yielded an element of shape (2,) where an element of shape (?, ?) was expected.Traceback (most recent call last): File "/usr/local/lib/python3.6/di.原创 2021-05-07 10:30:42 · 1928 阅读 · 0 评论 -
使用pandas 处理excel常用命令
1、读取execl的多个sheet# 读取excel 的内容为字典形式,key 为sheet 名,后面参数sheet_name指定时,只读取指定sheet内容,header为空,不把sheet的第一行作为列的index,excel_sheets_dict = pd.read_excel(data_path,sheet_name=None, header=None)例子: 0 1 2 3 4 ... 32 33...原创 2021-04-09 16:31:23 · 1293 阅读 · 1 评论 -
LTP4.0 docker 安装使用说明;ltp工具包使用说明
ltp4.0 6月份放出来了,一个模型进行多任务学习,立马测试了一下效果,确实不错。1、首先下载docker,使用pytorch1.4版本,python版本3.7https://hub.docker.com/r/pytorch/pytorch/tagsdocker pull pytorch/pytorch:1.4-cuda10.1-cudnn7-devel2、docker run 一个容器nvidia-docker run -p 8889:8888 --name torch_py..原创 2020-07-21 15:11:36 · 2806 阅读 · 7 评论 -
pip 安装faiss 不能用,使用conda安装并使用faiss成功
pip 安装faiss 安装过程没有报错,import时候必报错!!!1.安装cpu版本faisspip --default-time=1000 install -i https://pypi.tuna.tsinghua.edu.cn/simple faiss2、 报错 ModuleNotFoundError: No module named '_swigfaiss' File "/usr/local/lib/python3.6/dist-packages/faiss/swigfaiss.原创 2021-01-11 17:50:08 · 9289 阅读 · 4 评论 -
python ImportError: cannot import name ‘joblib‘ 以及AttributeError: ‘DataFrame‘ object has no attribut
1、通过pip list 查看 sklearn 以及 joblib的版本sklearn.externals.joblib在0.21版本中就已经不提倡使用了,在0.23版本中被删除,所以先卸载,再安装个低版本就好了后来又遇到AttributeError: 'DataFrame' object has no attribute 'as_matrix'pip uninstall pandasUninstalling pandas-1.1.4: Would remove:...原创 2020-12-03 17:25:33 · 2113 阅读 · 0 评论 -
python 处理数据保留精度使用 Decimal
from decimal import Decimala = Decimal(3)*Decimal("0.00100")print(a)0.00300原创 2020-12-02 14:13:41 · 568 阅读 · 0 评论 -
Python 正则问题 typeError:‘_src.SRE_Match‘ object is not subscrpitable
在程序中使用了正则匹配,res = re.search(pattern1,query),然后程序挂在了a = res[2]上面,低版本的python3.6以下会出现 typeError:'_src.SRE_Match' object is not subscrpitable 问题,改用res.group(2)即可。在3.7使用命令没有此问题。...原创 2020-12-01 11:07:30 · 381 阅读 · 0 评论