- 博客(31)
- 收藏
- 关注
原创 工具类
/** * 返回字符串的所有数字 * @param str * @return */ def returnNumber(str: String): String = { val regEx = "[^0-9]" val p = Pattern.compile(regEx) val m = p.matcher(str) m.r...
2019-09-05 14:27:31
143
原创 scala中json嵌套json
最近在使用神策的时候,要把自己的一部分数据导入神策中遇到问题:1.因为 hdfsImporter 无法把数据直接导入到 kudu 中,用户数据都是存在 kudu 中的。所以会经过 kafka 到 kudu目前机制是,hdfsImporter 导入的用户数据,是会经过 kafka,这个是底层机制,暂时不好修改。解决:需要您那边订阅出来之后,到根据对应的条件,过滤掉用户画像的数据2...
2019-08-28 11:15:58
1166
原创 spark graphx 学习
最近在使用图计算 涉及到用户的关系 折腾了好几天第一步:先看下用户生成的neo4j图吧 =====》》》这个是拿了一位大佬的测试数据图生成这个图的逻辑很简单,只需要创建csv文件举例:用户的邀请关系 :csv1 列名user_id:ID,:LABEL (里面是用户ID及我写了一个节点名称)csv2 列名 :START_ID,name,:END_...
2019-08-22 17:18:46
238
原创 scala嵌套数组
flatten可以把嵌套的结构展开. List(List(1,2),List(3,4)).flatten结果: List[Int] = List(1, 2, 3, 4)实例:val flatten_distinct = udf( (xs: Seq[Seq[String]]) => xs.flatten.distinct) df.groupBy("id").ag...
2019-08-15 14:47:18
1312
原创 hive sql 每几分钟内统计一次
selectyear(dateday),month(dateday),day(dateday),hour(timeday),floor(minute(timeday)/10),avg(indexValue) from table group by year(dateday),month(dateday),day(dateday),hour(timeday),floor(minute(ti...
2019-07-23 16:05:30
3249
原创 SQL 计算每十分钟内的值
SELECT concat( date_format( time, '%Y-%m-%d %H:' ) , floor( date_format( time, '%i' ) /10 ) ) AS c, count(1) FROM table WHERE time between "2019-07-08 00:00:00" and "2019-07-09 00:00:00" GRO...
2019-07-16 16:02:57
1592
转载 spark日期处理
详情查看:https://www.cnblogs.com/feiyumo/p/8760846.html以防止文章丢失,我搬运过来。 !!!转载自飞末!!!一、获取当前时间1.current_date获取当前日期2018-04-092.current_timestamp/now()获取当前时间2018-04-09 15:20:49.247二、从日期时间中提取字段1....
2019-07-02 16:44:26
3083
原创 airflow不同文件夹之间任务调度
之前搜了好多关于airflow不同文件夹里的任务调度依赖,都没有找到,于是公司同事专门花时间研究了一番,拿出来给大家共享。这里插一句 不知道大家是否在公司做了很多事情然后还觉得什么都不会或者在公司只做了一块任务 公司的部门区分很清晰我最近听说朋友的公司还有专门的定时任务设置部门 就还蛮规范的好啦 言归正传 目的在于:很多任务有依赖如果不设置依赖,前面的任务虽然时间...
2019-06-28 16:08:11
1056
原创 spark写数据到mysql 并进行更新
因为spark没有直接的update操作 所以我这里采用md5 进行和前一天的数据对比 有变化的更新进去只是说个思路哈具体的实现可以搜下md5使用
2019-06-28 15:51:11
1980
2
原创 excel设置每周一的日期
=DATE(YEAR(A2),MONTH(A2),DAY(A2)+7)a2:先给一个日期举例说明:这里A2是我先给的一个周一的日期
2019-06-28 15:48:32
4630
原创 spark生成自增ID
spark生成自增ID代码import org.apache.spark.sql.types.{LongType, StructField} val a = splitDF.schema.add(StructField("id_sk",LongType)) val b = splitDF.rdd.zipWithIndex() val c...
2019-05-22 10:41:28
1379
原创 spark报错OutOfMemory
最近在使用spark进行分析的时候 几千万的数据量感觉不多 但是跑起来非常慢内存溢出OutOfMemory1.然后在有使用map的地方 在map之前进行分区repartition2.join会有shuffle产生 shuffle也会产生数据溢出3.map也可以换成 mapPartitions 并且适当调整分区数 200 400 其他的还有很多 我用的就这些 然后任务可以跑出来。...
2019-01-09 20:14:15
1039
原创 airflow定时脚本配置
最近在使用airflow的时候 发现配置任务为每周一跑任务的配置并没有生效。捣拾了半天 最后还是回到crontab还有就是任务之间的依赖问题可以使用t7.set_upstream(t6)如果是t7任务在t6 t5 两个任务之后执行t7.set_upstream([t6, t5])意思是 t7在t6之后跑任务在airflow中是这样显示的:t6------t...
2019-01-09 20:00:02
1838
1
原创 mysql中日期转换
一直在使用hive及spark 使用时间戳转换。最近在使用mysql现场处理一些数据的时候,也会用到数据转换。简单的记录,之后想起来回来补充!hive及spark中 : 时间戳(秒级)-->2019-10-10substring(from_unixtimw(timestamp),0,10) 2019-10-10 23:23:23 --> 2019-10-10sub...
2019-01-09 19:49:31
496
原创 airflow使用(一)
最近在使用airflow下载anaconda3 ,然后配置环境变量。pip install airflow 或者 pip install apache-airflow 下载code进行脚本配置,code 配置之后提交git,在Jenkins上面进行构建任务,任务及airflow任务都构建。然后去airflow界面进行查看任务,并且打开任务列表。import airflowfrom ...
2019-01-03 20:54:02
695
1
原创 根据任意表字段进行分区
前段时间遇到数据 表里面没有适合分区的字段 ,时间紧,不打算写连接池,于是网上搜了下关于这些的文章。发现自己有时候真的是人才 !这段代码必须有用! import java.text.SimpleDateFormat val string = s"${startDate}" + " 00:00:00" val sdf = new SimpleDateFormat("yy...
2018-12-19 17:23:53
1645
3
原创 初次接触airflow及Jenkins
最近在使用tableau的过程中发现 配置过低 监控中cpu利用率高 于是开始使用airflow和Jenkins这里简单看了下 两者都是airbnb开源的 然后前者可以使用python配置任务 后者使用python写框架这里airflow及Jenkins公司都有 进描述下初步使用过程。首先下载code 下载网址:https://code.visualstudio.com ...
2018-12-18 21:44:33
1747
原创 数据分析之字段合并
趁着今天电脑进水 进去检修,写点平时用的东西。在进行数据分析的时候会遇到字段类型是相反的,之前我显示出来的报表呈现字段是这样的 :table name : t1 column name :robot , not_robot 最后效果是:robot not_robot 30 40 这样子有缺点就是视图总觉得少点什么,于是最近使用spark dataframe实现...
2018-12-12 17:44:44
298
原创 shell脚本
最近 任务太多! 手动跑了很多任务。太费事了终于有时间现在写个脚本 , 记录一下#!/usr/bin/env bashbinDir=../binfor i in {"2018-08-06","2018-08-13","2018-08-20","2018-08-27","2018-09-03","2018-09-10","2018-09-17",&q
2018-10-29 20:34:32
96
原创 写入数据库操作
想起一开始写入数据库操作的时候领导说要用他的方法无奈我笨 最后自己折磨了一番这样写入数据库操作的 import java.util.Properties val prop = new Properties() prop.setProperty("user", "") prop.setProperty("password", "") re.write.mo...
2018-10-09 20:14:36
331
原创 滞留及流转的概念区别
最近在疯狂的做数据分析~关于滞留 商品滞留 我的理解是 商品从发布时间到我现在统计的时间 这一段时间是 商品滞留的时间关于流转商品流转 是商品发布时间到商品成交订单时间 这一段时间称之为商品流转的时间这里有用到时间相减 我的情况是获取当前时间是2018-09-01 这种格式 所以就需要转换unix_timestamp('2018-09-01','yyyy-MM-dd...
2018-10-09 20:03:52
335
原创 spark实现获取上个月1号及最后一天
最近在分析的时候要分析周及月的数据那么月的话 一开始我是直接获取当月的1号及最后一天但是后来发现数据不太对因为这个样子跑的话 会存在最后一天数据丢失(和本身的数据有关)所以这里就要写 获取上个月的1号及最后一天有不对的请指正:import java.text.SimpleDateFormatimport java.util.Calendar //获取前月的第一天...
2018-10-09 19:54:51
3543
原创 sparkSQL之$
在使用sparkSQL过程中在SQL语句里面 有个字段里面本身带有$ 但是都知道在SQL里面识别出来会直接取值 这就达不到SQL语句的效果了那么 下面就是如何使用的val event = "$MP"val usersDF = sqlContext.sql( s""" | |select distinct id from dw_logstash.abc ...
2018-10-09 19:48:09
1350
原创 留存分析
之前做了留存和周月的数据定时定时任务应该都会留存的话有个坑比如说7日留存 那么我们的数据日期应该-7 但是最近用到7日的交易惯性思维直接-7 第二天发现数据不对才想到 是7日内的数据 应该-6 ...
2018-10-09 19:41:43
717
原创 tableau视图展示
最近在用tableau视图的时候发现有一个小秘密。如图所示 第一个日期这样展示 别人看的时候比较方便。第二个就是我们做数据分析的时候,会有统计比如:9.29号数据数据表里本来就没有数据,统计出来一样为空,但是我们要让别人知道我们 统计了这一天的数据,没有偷懒~那么这个日期就有用了因为他会这样展示:。。。。刚刚看了一下 ,不是tableau的原因,是我自己的代码。。想弃坑...
2018-10-09 19:37:12
1270
原创 关于Mac生成公钥私钥
在使用Mac终端的过程中,需要公钥私钥。之前写过忘记了,网上搜了一篇 使用openssl的方法。后来发现不好使,不符合运维的要求,所以搜了一下我以前用的命令: 1. ssh-keygen -t rsa 2. cd .ssh/ 3. id_rsa id_rsa.pub known_hosts...
2018-08-14 21:06:10
229
原创 关于Mac的使用:vi命令不识别
在使用Mac的过程中,发现vi命令不能使用。搁置了一段时间,发现不得不用。于是手动更改 确实可用:1 解决vi . 命令失效确保命令暂时可以使用exportPATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin2、修改.bash_profile文件 终端输入vi ~/.bash_profile 打开文件,将内容修改为以下形式,根据自己...
2018-08-14 20:58:20
1430
原创 数据分析:关于zeppelin与spark
这两天遇到了一些坑 关于zeppelin的使用需求代码写好,跑的时候一个需求跑了3h , 当时就想找原因。后来想了想是不是我的SQL遇到了数据倾斜,果然我看到了我的SQL使用了 distinct count group by 还有字段为空的列 。 然后我进行了优化 :采取了map join 的方式。不过这map join 逻辑还挺复杂的。贴个例子 ,如果有错误请指正: val rese...
2018-08-14 20:55:33
1094
原创 数据分析:自己爬的坑自己填
一:首先 说下关于时间戳和时间字符串之间的转换时间戳转成字符串:FROM_UNIXTIME(user_ctime,'%Y-%m-%d %H:%i:%s')字符串转成时间戳:select unix_timestamp('2018-07-01')二:意思一样,但是不懂出来的结果为啥不一样。这段SQL分析太浪费我时间了正确示范:select t1.uid,count(t2.tid) ...
2018-08-03 20:34:16
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人