00:03
好,同学们来,我们继续往后啊,那我们测试过了,我的数据是能够什么正常的进入到我的这个就是处理过程中的,那下面我们就可以接着往后走啊,下一步就是唯独关联。对吧?啊,你把这个维度给它关联一下啊呃,这个维度关联的话呢,我们主要就是关联这个order info就行了啊,这个order detail没有维度关联,我们只要关联这个order info,就是把这几个字段给它做一个处理。明白吧,行,那这个怎么处理呢?那我觉得也很简单啊。对吧,不就是查你的ras,然后呢调数据,调出来数据以后呢,把这个补充完整就行了呗,好吧,说来写一下啊,唯独关联,嗯,这个我们只做这个order info啊,只做order info就行了啊好,那我就拿上这个order info。Order stream,然后呢,关联维度了,那我们要调你的red对不对,那你要调red的话呢,这个过程我觉得我们就得用一个能够支持什么呀,就是P操作的对吧,那就使用一个。
01:00
Map partition。是不是,然后呢,你看啊,他给我传过来的是一个order info literature,那我做一个迭代order info literature。好,这样这个for一下啊,这是我们的每一个order info。OK吧,那你拿到这个每个order info以后呢,我们要做的事情是什么呀?就是首先第一个啊,就是关联你的用户维度好,再一个关联我们的地区维度好,再一个就是处理这个什么日期字段吧,日期字段啊好就这么几件事儿,那你整个都关联完成以后呢,你再把这个数据给他什么往回一返回好,那因为我们用的是这个map partitions,所以说呢,我们就需要什么把你这个呃关联好的数据啊,先给他什么存储起来,存储起来以后呢,我们最后统一给他这个返回。能明白吧,啊,同意给他返回就可以了啊行,那这个地方的话我想想啊,嗯。那我就这样来去做啊,我们先定一个最后的反馈结果啊,就是order叫list buffer,就是我的order info,好,这是回来,这是我的order info斯啊。
02:15
然后对吧,那最后的话呢,我们就把这个呀,你看啊,在这个for循环结束以后啊,把它返回。然后呢吧,好,那你这个关联这个维度的时候呢,需要查red,那我就提前把这个red给他搞定啊,买red get OK,然后呢,用完以后呢,关掉啊,诶close啊好关掉。看明白了吧,上面就关联呗,来关联你的用户维度,那就什么先order info,把UID拿出来,这是我的UID,上午我们写过类似的代码啊,我再给你写一次啊,大家下去以后也是啊,你不能因为说。我写过的代码了啊,我就什么直接去复制了啊,那就看情况,你会还是不会。
03:05
能明白我的意思吧,如果说你写的很熟了,这代码就根本没有什么难度,那你可以去复制。如果说你都写的这个磕磕绊绊的对不对,那你最好要再写一写啊,这越简单的代码你越得多去写啊,行,拿到以后来拼一下吧的什么user的key吧,好,那我们用的是dim,然后呢叫user in for,然后呢,后面拼上Dollar u ID。对吧,接下来就什么往出调数据了啊,怎么调数据啊。呃,调数据就是这get,把这个RA的user key传进去。然后呢吧,然后呢。呃,这个是我们的叫做user info的一个战啊。其实你看三这种代码我们也会写很多次啊,那我觉得你是不是可以考虑在你的呃red中啊,然后在这个工具类中是不是可以给他做一个封装啊,就将来你给我传上一个key,然后给你返回一个什么东西。
04:05
对吧,封装一下也行啊,行吧,这个大家可以自己去尝试封装一下啊,然后下面就是转了啊,Jason pass object,呃,我们把这个user for摘上。好,我们给它这个转成一个加对象啊,User in for的一个摘objection,好,那转完以后呢,下面就是什么提取呗,对吧,你看一下我们用什么东西啊,我们用的是还是这个性别和年龄啊,那我来提取这个性别啊,User info加上object,对get一个string对吧,那这个上午提过啊,字段叫真的,我就直接写了,好下面是什么提取,呃,年龄没有,我们提取生日。好,You info生日的话,我们叫什么来着,叫birthday对吧。对吧,直接写吧,Birthday啊。
05:00
好,Birthday。OK,那踢出来以后呢,下面我们要怎么去换算你的年龄了啊,换算好换算年龄啊,怎么换算来着,我们通过这个local data来去做啊pass诶。好,Pass这个birthday啊,然后呢,得到的是一个birthday的一个LD啊,好,然后呢,再通过这个local data,第2NOW啊,然后拿到一个当前的日期啊,就是nu LD,然后呢,我们再通过这个。票的对不对?好,然后计算一个between between的话就是把你的birthday传进去,把这个no LD传进去。好,这是拿到一个对象,然后呢,再通过它里面的去get一个L,这就是那个。差值,差值就是我们的年龄对吧?好,那你这个都提好以后呢,下面就是我们补充啊,补充到对象中啊,补充到。补充到这个对象中啊,行,这个能补充呢,那不就是你的all the info对吧,All the info the user真的就等于真的。
06:14
Order in for,这个U3的age就等于age点朱。嗯。诶。它会变成int了是吧,那它变成int的话,那就不用to string是吧,这样就可以了。对吧,看一下吧,这就是我们这个补充这个用户维度啊,行,那你这个会写的话,下面这个地区维度是不是一个道理啊。对吧,一个道理的啊,关联地区维度来吧,关联一下啊,还是呃,先把这个从你的UFO中啊,然后呢。呃,把这个地区啊,它应该叫做盖群啊,嗯。哎,不对啊,拿错了。
07:05
叫什么呀,这个pro ID啊是吧,把它拿出来啊,这个肯定是有的啊,好,然后这是我们的province ID OK,拿出来以后呢,还是拼接key啊的pron k怎么串dim贝斯。Promise,然后呢,Dollar把你的这个ID传进去。接收了啊,看到了吧,好,然后下面就是往出掉了啊,这get,然后呢,把这个red的promise key传过来,然后接收回来,这是我们的。Promise JA吧,好,然后呢,下面做一个处理啊,摘点pass。Pass啊,把这个promise加上传进去,然后呢接收回来。
08:04
Object OK,那下面就是提取了呗,对吧,提字段啊呃,那么它有哪些字段呢?还是上午我们补充过的那几个字段啊。对吧,还是补充过了几个字段来,那我们就呃提一下吧,Jason object点什么get一个群啊,他的那个promise name啊,它就叫名字啊,就叫name。好,那如果说这个你记不住的话,那你有什么最好去看你的这个表哈。对吧,如果你记不住,你就看着这个表的字段。理解吧,千万不要瞎写啊,因为你这个写的不对的,你肯定就提不出来了。OK吧,照着这个去写啊。来再往后promise object2啊,下面是呃,Area code,对吧,那我们就叫什么AA,然后呢,Code area code,好,然后呢,下面是这个3166对吧,那就是ISO3166_二,好,那我就叫3166吧。
09:15
好,最后一个啊。好,他叫这个叫ISO code的是吧,它就是ISO口的好找ISO code OK,呃,把这个都提出来以后呢,接下来就是还是补充到对象中啊,补充到这个对象中,这个怎么补充呢?那就什么order info。对吧,它的叫promised name,那就等于什么promise的,我们自己提出来的这个name啊好,然后呢,Order for。呃,Order info叫province的第二个什么area code,对吧?那就等于province的area code啊,Order info的province的下面是3166啊,OK,那就等于PROVINCE3166,好,最后一个啊。
10:16
呃,IO口的对吧。OK。看明白了吧,这就补充好了啊行,那补充好以后呢,最后一个是我们的叫这个日期字段啊,那这个日期字段的话,呃,我们要的是什么呀,我看看啊日期字段。这两个。好看一下啊呃,一个是create data,一个是create,这是我们创建的那个年月日对吧,这个是创建的那个什么小时,还有这两个字段啊,那这两个字段的话呢,我们可以什么从你的这个数据中啊,找你的TS,因为我的每条数据里面应该都是有那个S的,对不对。呃,哎,不对啊,他没有TS,哪有S呀,这是我们的业务数据对不对,那你看一下啊,那业务数据的话,我们现在拿的是你的叫做order info的数据,那我们看一下啊,我的order info中有什么。
11:07
那我目前这个order info中我是有,我是有的。对吧,我有创建时间的,但是他要的是一个创建的一个日期和一个小时,那我们仔细观察一下,其实这个create time呀,大家看数据啊,我们的create time正好就包含了这两部分东西。看一下吧,Time是不是正好包含你的年月日和你的这个十分秒的呀,那我就什么可以从你的数据中啊,把这个create time给它提出来,提出来以后做一个转换啊来。All the info the correct time,好,把它拿回来啊。这是我的啊好,然后呢。Create time,好,然后呢,现在我是不是只需要你看啊,它的数据正好是这个格式的哈,我也不知道做什么转换,我只要切一下就行了啊,那就是么,直接create time讲split,然后通过这个空格切一下,好,这个叫什么create d HR。
12:10
那行吧,然后呢,下面什么create dt HR,然后呢,我取它的第零个字段,第零个,那这应该是我的create叫data,好接下来呢,再把这个create dt HR,然后呢,第一个是不是你看啊,就是把它把这个十分表提出来,提出来以后呢,再去做一个切割,通过冒号切一下,切完以后呢,我再去去定一个,好这是我的create的HR。这两个就有了,好,有了以后呢,还是一样的啊,补充到对象中啊,来补充一下。好,补充到对象中啊,那就是我们直接order in for甲create data,那就等于我们的data啊,然后呢,Order in for the create HR叫create啊,那就等于我们的create datar好搞定。
13:08
这就补充完了啊,补充完成以后,千万不要忘了order in for.aend把你的order in for。放进去。理解吧。啊,或者说你还可以怎么写啊,就是呃,如果说你不想单独创建这个东西的话,比如说啊,我不想单独去创建它。那你可以怎么做呢?你可以这么去做啊,然后我给你换种写法啊,不这么搞了,我这么去搞all in for。Order info的这个it t,我直接什么出list一下order in enforce啊。对吧,我先把它转成一个这个order info,就是转成一个集合,那我转成一个集合以后呢,那我就可以把它拿过来,我去迭代我的这个集合。能看到吧,那我迭代我的每一个集合,那我迭代出来以后,迭代出来我的每个用户对象以后,你看一下我是不是就相当于在你的每一个用户对象里面去补充你的字段呗,对吧,那你补完以后呢,我的用户对象是不是还在这个集合中啊,那我最后我就不用再往里面去加了啊,我是直接什么直接这个order in for,然后呢,给他艾压不就OK了吗?
14:20
就是说白了,我就什么直接什么用你的这个集合了啊,我就没有什么自己在什么单独拿一个集合呢去维护了。然后的吧,同学们啊,这样写也可以啊,行好,那整体写完以后呢,我们把它接收回来,这就是我们的叫做order in for,呃,Di吧,就是我们补充的维度了哈,Dim的一个stream啊。第四卷啊,OK。行,那这个有以后来我们对它做一个打印啊,上面打印我去掉了吗?我看看啊。
15:01
呃,这个去掉了啊好,这个去掉了,来这一次我们只要看一下这个all in for这个数据啊,能不能补充完整啊,行吧,那我们就把这个代码再来跑一下。呃,跑起来以后呢,我们还是啊去做一个这个数据的生成啊,看他起来起来了啊,起来以后我们来生成下数据啊,呃,这个就不用给时间了啊。稍等看结果啊。如果说你看到把这个该补充的东西都补充成功了啊,那说明我们的维度补充啊,也就搞定。诶,数据还没到啊。这稍微有点慢哈,好数据到了啊,到了以后来看一下吧。主要是前面的都有啊,主要看后面的啊。嗯。后面的是不是都有了呀,你看这个是我们的,呃,两个。
16:01
诶。性别年龄啊,这两个有对吧,然后呢,我的地区纬度,然后这是我的这是什么呀,这个是我的那个创建时间啊,创建的小时啊呃,前面这个空是什么呀,我看看啊。这应该是我数据里面本来就是空的啊,不是我们丢东西的啊,应该数据里面本来就是空的啊,看一下啊创建的。DT啊,它是oper time对不对啊,那这个操作时间有可能是空的啊,因为我们刚下了订单,那我就没有操作时间对吧。没有这个修改时间啊,呃,前面还有一个空,前面还有一个空是。呃。哪个是空啊,这个是空对吧?啊,那这个也有可能是空啊,就是过期时间,过期时间不会空啊,过期时间都有的好吧,那这个空就是我数据里面本来就是空的啊,你看看啊,就是我们相当于刷新一下啊刷一下。这是我的info啊,刷一下你看一下啊,就这个东西它有可能是空的啊呃,诶。对吧,这个operator time它有可能是为空的啊,然后呢,还有就是那个,呃,我们的这个叫另外一个字段啊。
17:08
诶,另外一个知道跑哪了。嗯,这个不是我的问题啊,他这数据里面本来就是空的啊。诶,另外一个字段呢。怎么找不着了呢?创建时间啊。嗯,我看看啊,呃,这个字段我没有用上,应该是啊。嗯。这个钻应该没有用上啊,这个字段我没有用上啊,这个字钻这个钻没有用上啊,没有用上行吧,那没有用上它,那我的表里面是没有这个字段啊,如果说我们要用的话,我们还是需要补充它啊行,这个我们就先不考虑了啊行,那我们现在主要就是呃,你的这个。你的两个时间的这个字段,然后呢,你的地区的这个信息,以及你的这个用户维度的信息,那我给他补充进来,那说明我们该做的事情呢,就完成了,好吧,行,这是我们的维度补充啊,就到这。
我来说两句