hi、
我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 rule_key 转换为rule_key1,rulekey2 1 2 |
这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。
你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 Dream-底限 <[hidden email]> 于2020年7月22日周三 下午7:22写道: > hi、 > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > rule_key 转换为rule_key1,rulekey2 > 1 > 2 > -- Best, Benchao Li |
hi
是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li <[hidden email]> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 <[hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao Li > |
可以看下Flink 1.11的UDF type inference.
在TypeInference中有input的type,这个type应该是包含字段信息的。 Best, Jingsong On Thu, Jul 23, 2020 at 2:09 PM Dream-底限 <[hidden email]> wrote: > hi > 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 > > Benchao Li <[hidden email]> 于2020年7月23日周四 下午12:55写道: > > > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > > > Dream-底限 <[hidden email]> 于2020年7月22日周三 下午7:22写道: > > > > > hi、 > > > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > > > rule_key 转换为rule_key1,rulekey2 > > > 1 > > > 2 > > > > > > > > > -- > > > > Best, > > Benchao Li > > > -- Best, Jingsong Lee |
In reply to this post by Dream-底限
可以考虑把字段索引值保存下来再获取
原始邮件 发件人: Dream-底限<[hidden email]> 收件人: user-zh<[hidden email]> 发送时间: 2020年7月23日(周四) 14:08 主题: Re: flink row 类型 hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li <[hidden email]> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 <[hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao Li > |
hi、Jingsong Li
我查看了对应的api,并运行了demo测试,通过CallContext我可以拿到对应的字段类型,但是无法拿到对应的字段名称 >>在TypeInference中有input的type,这个type应该是包含字段信息的。 xiao cai <[hidden email]> 于2020年7月23日周四 下午2:19写道: > 可以考虑把字段索引值保存下来再获取 > > > 原始邮件 > 发件人: Dream-底限<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年7月23日(周四) 14:08 > 主题: Re: flink row 类型 > > > hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li <[hidden email]> > 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 < > [hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > > rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao > Li > |
hi、xiao cai
可以说一下思路吗,我没太懂 》》可以考虑把字段索引值保存下来再获取 Dream-底限 <[hidden email]> 于2020年7月23日周四 下午2:56写道: > hi、Jingsong Li > 我查看了对应的api,并运行了demo测试,通过CallContext我可以拿到对应的字段类型,但是无法拿到对应的字段名称 > > >>在TypeInference中有input的type,这个type应该是包含字段信息的。 > > xiao cai <[hidden email]> 于2020年7月23日周四 下午2:19写道: > >> 可以考虑把字段索引值保存下来再获取 >> >> >> 原始邮件 >> 发件人: Dream-底限<[hidden email]> >> 收件人: user-zh<[hidden email]> >> 发送时间: 2020年7月23日(周四) 14:08 >> 主题: Re: flink row 类型 >> >> >> hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li <[hidden email]> >> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > >> 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 < >> [hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > >> 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > >> row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > >> rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao >> Li > > > |
In reply to this post by Dream-底限
Hi ,Dream
比如你最终拿到的是Row(10),10表示有10个字段,这些字段的顺序是固定的,那么你可以把每个字段在row里的索引的映射关系保存下来,如下 map<fieldName, fieldIndex> ,然后 row.getField(map.get(fieldName))获取你需要的值 原始邮件 发件人: Dream-底限<[hidden email]> 收件人: user-zh<[hidden email]> 发送时间: 2020年7月23日(周四) 14:57 主题: Re: flink row 类型 hi、xiao cai 可以说一下思路吗,我没太懂 》》可以考虑把字段索引值保存下来再获取 Dream-底限 <[hidden email]> 于2020年7月23日周四 下午2:56写道: > hi、Jingsong Li > 我查看了对应的api,并运行了demo测试,通过CallContext我可以拿到对应的字段类型,但是无法拿到对应的字段名称 > > >>在TypeInference中有input的type,这个type应该是包含字段信息的。 > > xiao cai <[hidden email]> 于2020年7月23日周四 下午2:19写道: > >> 可以考虑把字段索引值保存下来再获取 >> >> >> 原始邮件 >> 发件人: Dream-底限<[hidden email]> >> 收件人: user-zh<[hidden email]> >> 发送时间: 2020年7月23日(周四) 14:08 >> 主题: Re: flink row 类型 >> >> >> hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li <[hidden email]> >> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL plan过程的东西,在运行时它就没有什么实际意义了。 > >> 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 < >> [hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > >> 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > >> row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > >> rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao >> Li > > > |
hi xiao cai
我懂你的意思了,这确实是一种解决方式,不过这种方式有一个弊端就是每个这种功能都要开发对应的方法,我还是比较倾向于一个方法适用于一类场景,如果做不到只能每次有需求都重新开发了 xiao cai <[hidden email]> 于2020年7月23日周四 下午3:40写道: > Hi ,Dream > > > 比如你最终拿到的是Row(10),10表示有10个字段,这些字段的顺序是固定的,那么你可以把每个字段在row里的索引的映射关系保存下来,如下 > map<fieldName, fieldIndex> ,然后 row.getField(map.get(fieldName))获取你需要的值 > > > 原始邮件 > 发件人: Dream-底限<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年7月23日(周四) 14:57 > 主题: Re: flink row 类型 > > > hi、xiao cai 可以说一下思路吗,我没太懂 》》可以考虑把字段索引值保存下来再获取 Dream-底限 < > [hidden email]> 于2020年7月23日周四 下午2:56写道: > hi、Jingsong Li > > 我查看了对应的api,并运行了demo测试,通过CallContext我可以拿到对应的字段类型,但是无法拿到对应的字段名称 > > > >>在TypeInference中有input的type,这个type应该是包含字段信息的。 > > xiao cai < > [hidden email]> 于2020年7月23日周四 下午2:19写道: > >> 可以考虑把字段索引值保存下来再获取 >> >> >> > 原始邮件 >> 发件人: Dream-底限<[hidden email]> >> 收件人: user-zh< > [hidden email]> >> 发送时间: 2020年7月23日(周四) 14:08 >> 主题: Re: flink > row 类型 >> >> >> hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li < > [hidden email]> >> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL > plan过程的东西,在运行时它就没有什么实际意义了。 > >> > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 < >> > [hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > >> > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > >> > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > >> > rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > Benchao > >> Li > > > |
Administrator
|
你可以看看是不是可以把这个字段声明成 MAP,这样就可以 map['rule_key1'] 的方式通过字段名去获取了。
Best, Jark On Thu, 23 Jul 2020 at 15:47, Dream-底限 <[hidden email]> wrote: > hi xiao cai > > 我懂你的意思了,这确实是一种解决方式,不过这种方式有一个弊端就是每个这种功能都要开发对应的方法,我还是比较倾向于一个方法适用于一类场景,如果做不到只能每次有需求都重新开发了 > > xiao cai <[hidden email]> 于2020年7月23日周四 下午3:40写道: > > > Hi ,Dream > > > > > > 比如你最终拿到的是Row(10),10表示有10个字段,这些字段的顺序是固定的,那么你可以把每个字段在row里的索引的映射关系保存下来,如下 > > map<fieldName, fieldIndex> ,然后 row.getField(map.get(fieldName))获取你需要的值 > > > > > > 原始邮件 > > 发件人: Dream-底限<[hidden email]> > > 收件人: user-zh<[hidden email]> > > 发送时间: 2020年7月23日(周四) 14:57 > > 主题: Re: flink row 类型 > > > > > > hi、xiao cai 可以说一下思路吗,我没太懂 》》可以考虑把字段索引值保存下来再获取 Dream-底限 < > > [hidden email]> 于2020年7月23日周四 下午2:56写道: > hi、Jingsong Li > > > 我查看了对应的api,并运行了demo测试,通过CallContext我可以拿到对应的字段类型,但是无法拿到对应的字段名称 > > > > >>在TypeInference中有input的type,这个type应该是包含字段信息的。 > > xiao cai < > > [hidden email]> 于2020年7月23日周四 下午2:19写道: > >> 可以考虑把字段索引值保存下来再获取 >> >> >> > > 原始邮件 >> 发件人: Dream-底限<[hidden email]> >> 收件人: user-zh< > > [hidden email]> >> 发送时间: 2020年7月23日(周四) 14:08 >> 主题: Re: flink > > row 类型 >> >> >> hi 是的,我们的数据场景比较尴尬,那我想其他方式实现一下 Benchao Li < > > [hidden email]> >> 于2020年7月23日周四 下午12:55写道: > 这个应该是做不到的。name只是SQL > > plan过程的东西,在运行时它就没有什么实际意义了。 > >> > > 你是想在udf里面获取row里面每个字段的名字是吧?如果是的话,我理解现在应该是做不到的。 > > Dream-底限 < >> > > [hidden email]> 于2020年7月22日周三 下午7:22写道: > > > hi、 > > >> > > 我这面定义row数据,类型为ROW<rule_key STRING>,可以通过 > > >> > > row.getField(i)获取到对应的值,但是我想获取对应的row_name名称要怎么操作,貌似没有报漏获取名称的接口 > > > > >> > > rule_key 转换为rule_key1,rulekey2 > > 1 > > 2 > > > > > -- > > Best, > > Benchao > > >> Li > > > > |
Free forum by Nabble | Edit this page |