![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
odps
huobumingbai1234
路漫漫其修远兮,吾将上下而求索
展开
-
hive-维表关联,维表层级id不确定情况
问题描述:事实表存储的类目id不确定是几级id;一共有三级类目,需要把类目信息维护进事实表,比如记录的是二级类目id,需要把一级类目数据维护进事实表。一开始没有想到怎么搞,还是想了一会儿想了这么个处理方法:ods_classify原始业务库表,id就是各级的类目id,pid就是上一层级的类目id,dim_classify是事先处理好的一二三级类目表select t1.id ,t4.third_id ,t4.third_title ,case when t原创 2021-03-08 22:27:28 · 424 阅读 · 0 评论 -
hiveUDF-json对象新加一行数据
需求内容,json对象需要新加一行数据{"a":1} -> {"a":1,"b",2}这个可以通过sql拼接进来,感觉不太严谨,如果有嵌套的json对象,可能识别会有问题,新写了一个函数。我使用了GSON这个类package udf;import com.aliyun.odps.udf.UDF;import com.google.gson.*;public class JsonAdd extends UDF{ public String evaluate(Strin原创 2021-02-17 20:52:07 · 439 阅读 · 0 评论 -
hive-UDF-计算某个标记值的数量;ab值检测
1、主要是计算某个字段值里面的标记值,比如某个字符串有多少个逗号package udf;import com.aliyun.odps.udf.UDF;public class MarkCount extends UDF{ public Long evaluate(String text,String sub){ int count =0, start =0; while((start=text.indexOf(sub,start))>=0){原创 2020-12-13 19:50:36 · 488 阅读 · 0 评论 -
hive删除字母组成的分区
删除所有分区,但是不删除表结构:alter table bigdata2c.dim_trd_supplier drop if exists partition(business rlike '^[\u4e00-\u9fa5_a-zA-Z0-9]+$');原创 2020-12-09 10:45:53 · 130 阅读 · 0 评论 -
hive用户标签体系的任务怎么写
背景: 最近有接到业务上的这么个需求,每天计算圈定用户的一些标签,同时把新增和移除标签的信息及当前用户的信息发给下游,举例: 这个用户昨日新增了tag3和tag2这个标签,同时当前codes也是这2个任务设计:首先,存储每天的全量的计算结果,因为新增和减少都需要和之前的数据作比较才知道,同时全部的codes用全量的结果然后,用昨天的数据和前天的数据full join下,这样形成一个新增和减少的关系表最后,按照指定格式取出来新增和减少的code及当前的codes...原创 2020-12-03 03:25:05 · 562 阅读 · 0 评论 -
order by改分组排序
工作中同事有时候会需要随机排序,同事会全局写个order by rand(),然后几十亿的数据就会比较慢。然后会这么改下。先随机分组下,再排序,随机效果应该差不多distribute by floor(randbetween(1,10001)) sort by RAND();...原创 2020-12-03 03:09:26 · 401 阅读 · 0 评论 -
json数组解析
工作中会有这样的数据类型,需要规则化的解析出来方便下游使用解析如下:select crawler_data_time ,nav ,model ,author_id ,nick_name ,follower_num ,create_time ,get_json_object(concat('{',report_1,'}'),'$.distribution_key') as distribution_key ,get_json_object(concat('.原创 2020-10-18 14:56:47 · 820 阅读 · 0 评论 -
hive-udf正常数据转化为json形式(二)
之前都是手动拼字符串写的,优点是灵活,缺点也很明显,容易出错。下面提供一种udf的形式:package udf;import com.aliyun.odps.udf.UDF;public class TableBulidJson extends UDF { public String evaluate(String ... params) { if (params == null || params.length == 0 || params.length % 2原创 2020-10-08 19:34:34 · 1875 阅读 · 0 评论 -
named_struct类型怎么用
今天用到了named_struct类型,主要用这个函数做json拼接select named_struct( '"supplier_sku_id"',supplier_sku_id, '"supplier_id"',t1.supplier_id, '"prefee_rate"',prefee_rate, '"order_rate"',order_rate, '"goRate"',go_rate, '"comple原创 2020-08-12 23:05:55 · 10831 阅读 · 0 评论 -
阿里云数据读取做桑基图
主要自己做个记录吧,流程:pyodps读取数据源-->pandas-->pyecharts;每天调度会计算好数据落到odps,这边再加个自动发送就好了。桑基图个人觉得某些场景还是蛮适合的,图像的表征能力还是很强的。画图部分主要参考了这个https://blog.csdn.net/akenseren/article/details/103416477,中间细节部分还是看了下官方文档。# -*- coding: utf-8 -*-import pandas as pdfrom py原创 2020-08-03 22:23:04 · 635 阅读 · 0 评论 -
基于pyodps读本地文件上传到odps
本地文件有传输到odps的需要,虽然阿里云dataworks有这样的操作界面,但是文件内容有个逗号啥的就会有问题,所以专门写个脚本处理这一步。处理逻辑: pandas_read_csv ---->pyodps的dataframe------>odps代码如下,简单方便:# -*- coding: utf-8 -*-import pandas as pdfrom odps import ODPSfrom odps.df import Dat...原创 2020-08-03 20:56:44 · 2458 阅读 · 0 评论 -
hive正常数据转化为json数组
工作中,大多数时候会需要把json数组中的数据解析出来,现在会经常和后端打交道,后端同学就希望把正常的行列数据用json的形式给他们,他们使用起来方便,我看有的文章会写用udtf函数实现,不过本着能用内置函数绝不用自定义函数的原则(主要是我不会写),用内置函数实现也不是很难。 原数据形式: 希望转换成一个标准的json数组,{ 下装款型: ...原创 2019-10-27 13:11:47 · 12875 阅读 · 0 评论