python
文章平均质量分 51
xufwind
这个作者很懒,什么都没留下…
展开
-
streamsets任务批量管理尝试
使用 streamsets 处理导数据,可以做到在页面拖拉拽创建一个pipeline,就能打通数据通道在需要接入的业务系统很多的情况下,我们就会创建很多的pipeline,用来导数据在大量使用全量导入,做T+1数据的情况下,如何管理 streamsets 各个导数据的pipeline的执行会是个比较重要的问题在此尝试了两种方式来管理 streamsets pipeline 的批量执行方式一: 使用python直接调streamsets API 的方式思路简介将需要按时调用的pipeline.原创 2022-01-11 15:39:57 · 727 阅读 · 0 评论 -
大数据清理脚本
大数据计算过程中可能会遗留大量的日志,中间文件,以及过期的计算结果在数据量是很大的情况下,这些数据会占用很多存储资源,甚至可能导致因磁盘满载出现机器停止运行的问题下面是笔者在工作中编写的用于清理这些数据的脚本,目前可清理数据有:本地日志和其它文件hdfs目录hive表hbase表详情见代码: https://github.com/xufwind95/data_cleaner...原创 2021-08-11 13:47:41 · 195 阅读 · 0 评论 -
如何找出流程中的循环依赖
开发过程中,碰到流程性质的业务时,可将一个个流程抽象成一个个的执行对象流程之间会有依赖关系,现在就变成了对象之间的依赖关系对象的依赖关系如果碰到循环依赖的话整个执行就会变成一个死循环如果流程特别多,出现循环依赖的话,人工排查就会特别费事如何在代码中排查循环依赖,并确定哪些地方有循环依赖,直接见代码def get_dependency_lst(): return [ ("A", ["B", "C", "D"]), ("B", ["B", "C", "A"].原创 2021-07-14 15:26:05 · 1152 阅读 · 0 评论 -
接雨水算法题实现
一维接雨水算法题实现https://leetcode-cn.com/problems/trapping-rain-water/def trap_rain_water(height): # 思路: 一个格子能不能接到雨水,能接到多少雨水,由其两边最高的"墙"决定 # 从第二个位置遍历每个格子,遍历到倒数第二个,找到每个格子两边最高的墙 # 格子高于等于墙高则无法接住雨水,如果比墙低,则能接住较低的墙减去格子高度的雨水 # 将每个格子接到的雨水加起来,遍历完成后.原创 2021-05-08 16:33:03 · 424 阅读 · 0 评论 -
spark读取parquet数据报异常: java.lang.NegativeArraySizeException
背景: 在执行spark任务的时候,中间有多次落盘,将数据以parquet格式写到hdfs。然后再将数据读取出来继续执行。执行到中间有如下报错: [spark] Caused by: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file hdfs://master1:8020/user/xxx/part-00512-0462dbf5-98b2-41fa-925c-3a.原创 2021-01-29 17:40:55 · 2137 阅读 · 0 评论 -
spark计算结果按excel模板(多tab)格式输出
场景描述使用spark对数据进行处理,处理完成后,要求按用户给定的excel模板将数据导给用户模板中的部分tab所需数据不是spark计算的,但是这部分tab需要在最后的输出中将tab和列名展示出来模板中的部分列在计算中是没有的,这些列也需要输出,数据留着空白就可以excel的输出要求:每个tab严格按照模板的顺序,数据中的列严格按照模板的顺序,每一行按规定的字段排序实现思路spark的输出对照模板tab,每个tab一个csv文件,写到 hdfs 指定文件目录下将每个tab的列名生原创 2020-06-04 17:03:28 · 795 阅读 · 0 评论 -
使用python处理excel
去网上找的处理库,直接上代码了import osimport reimport xlrdimport xlwtdef set_style(name=None, height=220, bold=False): """ 设置表格样式 :param name: :param height: :param bold: :return: ...原创 2019-03-22 10:31:03 · 259 阅读 · 0 评论 -
xpath解析获取某个节点下所有的文本字符
使用xpath解析某个节点下所有文本(包括该节点的文本和其所有子节点的文本):from lxml import etreeimport requestsurl = 'xxx'resp = requests.get(url)html = resp.textroot = etree.HTML(html)# 获取某个tr节点下面的所有文本数据数据tr_text_all = roo...原创 2019-03-11 17:24:10 · 15949 阅读 · 2 评论 -
尝试使用django存储爬取的文件
从网上直接爬取资源后,如果资源是文件,比如图片、音频等,返回的数据是二进制数组,如果我们要保存,一般都是直接新开一个和资源类型相同的文件,并将得到的二进制数据直接写进文件。如果我们需要让django的ORMModel 来管理我们下载的资源,那么model中需要有FileField这个字段,并且我们需要将要保存的文件和这个字段关联起来。def _upload_to(instance, f...原创 2019-03-04 10:07:33 · 379 阅读 · 0 评论 -
django 插入库表时如何添加many-to-many字段数据
创建对象时,多对多字段不能直接通过下面的方式处理:from .models import Blog, Author, Userauthor = Author.objects.get(id=1)users = User.objects.filter(id__in=(2, 3, 4))# 这样直接写过不了,会报错: Direct assignment to the forward si...原创 2019-02-15 09:15:06 · 5557 阅读 · 0 评论 -
用 django orm 写 exists 条件过滤
要用django的orm表达sql的exists子查询,是个比较麻烦的事情,需要做两部来完成from django.db.models import Exists, OuterRef# 1. 定义子查询条件relative_comments = Comment.objects.filter( post=OuterRef('pk'), # 注意外键关联方式:post为Comm...原创 2019-01-14 14:26:27 · 8283 阅读 · 0 评论 -
ModuleNotFoundError: No module named 'xxx'; 'xxx' is not a package
在使用脚本导数据的时候,出现了个这个错: ModuleNotFoundError,项目目录如下project |-- ... |-- load_data |-- __init__.py |-- load_data.py |-- util.py 只有一个...原创 2019-01-08 19:05:57 · 17870 阅读 · 8 评论 -
django 上传静态文件到云(亚马逊S3)的简单设置
django 的默认静态路径是存储在本地的某些文件夹中的,要将静态文件的存储路径指向到云,除了修改settings中的文件路径,还需要安装相应的库下面是使用django将上传的文件直接保存在亚马逊s3上的配置,如有不当和错误请指正。1. 申请S3云存储,这里不再细说 参考资料: https://simpleisbetterthancomplex.com/tutorial/2...原创 2018-07-31 14:57:42 · 1506 阅读 · 0 评论 -
python web 开发 三方库不适配的一些处理尝试
为了提高开发效率,同时不降低程序的健壮性,我们很多时候都会直接去网上找开源的的三方库来直接使用。python web 开发也是这样,但有时找了很多的三方库,花不少时间了解后,最后发现没有一个是完全和自己的需求一样的...这些情况下有时可能就差点点就能满足自己的要求了,工作中也正好就碰到了这些情况,下面分享下自己的解决方式,如果有其它思路的,欢迎分享!1. 三方库比较小,并且代码容易上手...原创 2018-08-02 15:15:26 · 209 阅读 · 0 评论 -
django rest framework 自关联外键序列化的一些方式
序列化作为django rest framework 的一大神器,在工作中能帮我们做很多的事情。但是在碰到自关联外键序列化时,我查了官方文档,也有一个关于这个的序列化:class AccountSerializer(serializers.ModelSerializer): url = serializers.CharField(source='get_absolute_url', ...原创 2018-08-13 19:09:02 · 6375 阅读 · 6 评论 -
django 自定义图片上传路径和上传文件名
图片上传中,如果不对上传的文件名做处理,很容易引起文件名重复,这会覆盖之前上传的图片,django提供了自定义上传文件名的方法。 def generate_filename(self, instance, filename): """ Apply (if callable) or prepend (if a string) upload_to to th...原创 2018-09-07 16:41:39 · 3559 阅读 · 1 评论 -
python 脚本调用 django orm
import osimport sysimport jsonimport django# 将项目路径添加到系统搜寻路径当中,查找方式为从当前脚本开始,找到要调用的django项目的路径sys.path.append(os.path.dirname(os.path.abspath(__file__))) # 设置项目的配置文件 不做修改的话就是 settings 文件os.en...转载 2018-09-28 09:39:24 · 747 阅读 · 0 评论 -
python-django 环境简单搭建
要用git的,去网上找个git配置就行:ubuntu下配置 git创建虚拟环境: 安装对应的python版本(如果系统中没有指定版本): https://blog.csdn.net/lzzyok/article/details/77413968 https://www.jianshu.com/p/834a242d15a8 指定p...原创 2018-10-15 09:31:46 · 172 阅读 · 0 评论 -
django 中间件中修改返回数据
在django的middle中可以做一些公共的事情,比如在http头中加入用户认证信息,统一异常处理,统一返回值格式等。在统一返回值格式的时候,是需要修改response的数据的。这里直接修改response的数据还不够,因在views中返回时,已经render了数据,修改response的返回数据时需要重新再render一次。class RewardMiddleware: ...原创 2018-12-05 15:03:21 · 2805 阅读 · 0 评论 -
django 做 migrate 时 表已存在的处理
在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误: django.db.utils.OperationalError: (1050, "Table 'xxx' already exists")要处理这种情况,如果是数据...原创 2019-01-04 14:43:16 · 7969 阅读 · 0 评论