00:00
好,同学们,呃,这一节呢,我们在大家关注一个问题,就是我们可以发现,哎发现呃,我们这种摘表模式呢,出来之后,呃,File呢,它都是字符串,这个我可以理解,因为所有的字段名它就是字符串嘛,是吧?但是呢,这里有个问题,就是我们的wi类型呢,全部都是double啊,但是我们知道在我们的英法DB里面呢啊,字段的类型可以是什么呀,可以是字符串,可以是整数啊,可以是整数,可以是无符号整数啊,也可以是布尔类型啊,那么现在呢,我们不妨往这个英拉斯TB里面呢,插入两个不同类型的字段,看它被查出来之后,在这个value里面呢,会出现什么样的情况,好,我现在把平清一下。啊,回到我们的这个,回到我们的这个插入数据的页面。啊,现在呢,还是要选择啊,先刷新一遍。选择query。啊,这里呢,我们还是手动输入数据,这一次呢,写的行协议啊,我们的测量名称叫test。
01:04
呃,然后呢,这个标签集呢,我们就不写了,直接打个空格,然后敲我们的字段集啊,这个就叫FIELDE1啊,表示字段一等于我们写一个字符串,比如说啊,你好啊啊然后呢,我们再写一个,呃,注意是英文逗号,逗号啊,我们再写一个字段Fi LD哎,等于十啊,再写一个啊,这个字段呢,要写一个FIELD2啊。哎,等于十啊,再写一个字段,Fie LD。呃,这个三。就等于。呃,我们可以写一个啊11再加一个I的后缀,之前呢,在这个伊拉斯比行协议里呢,给大家说过啊,这个I呢,是一个类型后缀,表示我们现在这个11呢,表示的是整数,默认情况下呢,这个十啊,这些数字呢,表示的都是浮减数啊,这个行协议呢,如果转成我们的哎,摘表模式的话呢,应该是这样。
02:04
呃,有一个呃字段叫field fie LD,然后呢,它呃第一个值呢,第一行啊,应该叫FIELD1FIE ld1,第二行叫FIELD2FIE ld2啊,第三行呢,就是FIELD3FID ld3啊接下来呢,还有一个字段叫value。下划线value,然后呢,它后面这个值呢,就就很奇怪了,因为我们知道一列的这个数值类型呢,字段类型它必须得是一样的,哎,那么我们是哎看这个Fla语言呢,它怎么来处理,你好啊,这个字符串以及整数和浮减数的。呃,接下来呢,我们去点击提交啊,点击提交。好,现在数据呢已经插进去了,呃,回到我们的查询页面上来,诶这一次呢,把这个过滤条件换一下,我们直接呢,把这个measurement呢换成test,好点击submit啊,那么现在呢,我们可以看到非常震惊的一幕啊,呃,表呢直接裂开了。
03:03
啊,之前呢,我们插入了一个整数,然后一个浮点数,还有一个字符串啊现在可以看到呢,整数和浮点数呢,占到了一块,都成了double类型,说明我们的整数呢,在查询的时候被转换成了浮点数,呃,但是呢,千万不要认为这样处理呢非常强大,非常聪明啊呃,实际上现在这个程序呢,呃,整成这个样子已经影响我们后面的程序正常运行了。呃,所以这个时候呢,呃,如果说你要是做一些计算型的任务的话,我们应该去对这个字段再进行一个过滤file啊Fi filer,然后呢,把这个传进来一个我们说的匿名函数。哎,对,这个字段呢,哎,我们这下划线file的fie LD啊,注意这个箭头少了fie LD啊,然后呢,这个地方就直接等于等于,然后fie de。
04:01
哎,通过字段呢,再过滤一层点击提交啊,那么这呢才是一个正常的处理方式啊,最后你要让哎保证这个杠W6呢,它的类型呢保持统一。啊,现在呢,我们想把这个F1啊改成FIELD2啊,点击提交。啊,可以看到我现在呢,出来的这个十是一个double类型的啊,我现在再改成这个,改成这个F3 f3呢,之前是我们写的一个整数类型啊,是11I,还不知道大家记不记得啊,点击提交。哎,可以看到11呢,它是一个整数类型,好,那么这里呢,给大家说一下类型转换的问题。啊,如果这里呢,我想把这个十转成一个整数类型,那怎么办呢?其实有一个函数,我们直接呢,呃,先调用一下管道符,打开空格啊在这里面搜。哎,你找兔。呃,那么如果呢,这个函数名字是什么to开头的,那就是要转成什么的啊,除了这几个之外啊,有点打脸,咱们看一下这个。
05:06
哎,像这个Type Conversions,那么它呢,就是一个类型转换的函数,我们可以看到这个呢,其实就就是用来转换我们这个啊数据的类型的,哎,现在呢,我们直接。To,好,先把它下拉下来啊,这是之前我们提交的一个结果啊,这里呢是double类型啊,此处呢记住要加小括号,点击submit。啊,可以看到这里面的这个值呢,就变成了long类型,变成了一个整数啊,那么这里需要注意呢,就是啊,我们的to in,你可以看到它没有进行啊,他没有传任何的参数啊,不像我们之前这些函数,我们都给了一个匿名函数,去指定我们要处理这一行数据里的哪些字段啊,对这哪些字段做一些处理。啊,但是你会发现呢,这个to int函数呢,没有指定任何字段,它一上来呢,就对杠value这个字段进行了一个类型转换的处理。
06:03
啊,那像这种程序的行为呢,我们通常称之为约定。约定,呃,那么在我们的这个flax查出来的这些呃数据里面,其实使用下划线开头的字段都带有某种约定。啊,其实呢,这个地方我们可以自己去造一个呃表,呃这个这个呃我们说的表流。呃,把它的注掉之前呢,我们给大家说过,哎,我们通过A等于A22A,然后。点from啊,通过这个方法呢,可以直接自己造一个。呃,这里呢,我们直接传递一个record,比如说就叫A,然后呢,它有一个啊值啊这个字段名称就叫A,然后它有个值呢,就是一。啊,可以看到这里呢,应该是有一些语法错误。呃,说的是。
07:00
啊,没事,我们不用A这个等于了不赋值了,直接呢,啊也不对啊,没有指定这个参数名啊,Rose ROS,然后冒号,好,接下来我们尝试一下,给它来一个哎,这个管道符,哎,再来一个这个什么to string吧。好别括号,诶可以发现在这里直接报错啊,点击提交啊,程序呢会直接崩掉,他说呢啊,这个我们的这个记录里面呢,找不到一个叫做杠W6的字段。所以说呢,我们有一个约定啊,有个约定啊,说的是啊,这个约定的具体内容呢,就是说啊,稍等我先把这个注释呢给它放开。呃,正常来说呢,实际shift加这个下划线呢,其实也可以把这个注释呢自动放开,呃,但是我们的web UI呢,好像没有做这个快键键子功能。好,我现在把这一行代码给删掉。好啊,那么这个约定的具体内容呢,就是,呃,一切使用下划线的字段啊,一切使用下划线开头的字段。
08:06
都是我们这个函数库里面会产生依赖的字段,比如说time这个字段,你就啊,你一旦没有这个time这个字段,你就没有办法使用开窗的一些函数,比如说啊,这个管道符window,还有这个aggregate window这些函数呢,你都没办法使用,哎,他们他们可以使用的前提就是你的这个,呃,数据结构里面呢,有下划线time这个字段。好,所以说呢,原始的这些字段呢,你尽量都不要动。
我来说两句