Re: ParquetTableSource在blink table planner下的使用问题

2020-02-17 文章 jun su
hi Jark,

就是因为我的数据里 event_name 字段的value 没有 "没有这个值" , 所以才比较奇怪

Jark Wu  于2020年2月18日周二 下午12:15写道:

> Hi jun,
>
> 这个是符合预期的行为哈。这说明你的 source 中有4条 event_name 的值是  '没有这个值'
>
> Best,
> Jark
>
> On Mon, 17 Feb 2020 at 23:26, jun su  wrote:
>
>> hi Jark Wu,
>>
>> 感谢你的帮助 , 我在之前的问询中还发现了一些别的问题:
>>
>> 发现ParquetTableSource在flink table planner下, stream/batch 两个模式下都有这个情况:
>> 当select一个字段, 并且where条件有 = 判断的话, 输出结果是将where条件
>> 直接赋值给了select字段并返回,以下是简单描述:
>>
>> sql = select event_name from source where event_name = '没有这个值'
>>
>> 输出结果为:
>>
>> 没有这个值
>> 没有这个值
>> 没有这个值
>> 没有这个值
>>
>>
>> Jark Wu  于2020年2月17日周一 下午5:03写道:
>>
>>> 排查了下,确实是个 bug,我开了个 issue 来跟进解决:
>>> https://issues.apache.org/jira/browse/FLINK-16113
>>>
>>> 当前的 workaround 可以将常量放到 selelct 中,比如 select a,b,'windows进程创建' from
>>> MyTable where c = 'windows进程创建'
>>>
>>> Best,
>>> Jark
>>>
>>> On Mon, 17 Feb 2020 at 15:15, jun su  wrote:
>>>
 上一个问题补充, 在blink table planner下:

 select event_name from table => 中文编码没问题

 select event_name from table where event_name = 'windows进程创建'=>
 此时中文编码有问题, 应该是在底层userFunction里将where条件为true时, 直接将where条件赋值给了
 输出列,此时出现了编码问题

 麻烦查证下

 jun su  于2020年2月17日周一 下午1:28写道:

> hi Jark Wu,
>
> 又发现了一个blink table planner的问题,中文显示乱码,麻烦也查证下, 以下是代码:
>
> ParquetTableSource parquetTableSource = ParquetTableSource
> .builder()
> .path("/Users/sujun/Downloads/edr/EDR")
> .forParquetSchema(new 
> AvroSchemaConverter().convert(org.apache.avro.Schema.parse(schema, true)))
> .build();
>
> Table source = bsTableEnv.fromTableSource(parquetTableSource);
> bsTableEnv.createTemporaryView("source",source);
>
> Table t1 = bsTableEnv.sqlQuery("select event_name from source where 
> event_name = 'windows进程创建'");
> bsTableEnv.toAppendStream(t1,Row.class).print();
>
> windows\u8FDB\u7A0B\u521B\u5EFA
> windows\u8FDB\u7A0B\u521B\u5EFA
> windows\u8FDB\u7A0B\u521B\u5EFA
> windows\u8FDB\u7A0B\u521B\u5EFA
> windows\u8FDB\u7A0B\u521B\u5EFA
> windows\u8FDB\u7A0B\u521B\u5EFA
>
>
> jun su  于2020年2月14日周五 下午6:54写道:
>
>> 1. 发现ParquetTableSource在flink table planner下, stream/batch
>> 两个模式下都有以上提出的问题,
>> 2. blink table planner下没有以上问题, 但是中文print方法有编码问题
>>
>> 不清数是不是我使用问题,麻烦查证下
>>
>> jun su  于2020年2月14日周五 下午6:30写道:
>>
>>> hi Jark Wu,
>>>
>>> 抱歉以下是我的代码和结果:
>>>
>>> public static void main(String[] args) throws Exception {
>>> ExecutionEnvironment fbEnv = 
>>> ExecutionEnvironment.getExecutionEnvironment();
>>> BatchTableEnvironment fbTableEnv = 
>>> BatchTableEnvironment.create(fbEnv);
>>>
>>> String schema = 
>>> 

Re: ParquetTableSource在blink table planner下的使用问题

2020-02-17 文章 Jark Wu
Hi jun,

这个是符合预期的行为哈。这说明你的 source 中有4条 event_name 的值是  '没有这个值'

Best,
Jark

On Mon, 17 Feb 2020 at 23:26, jun su  wrote:

> hi Jark Wu,
>
> 感谢你的帮助 , 我在之前的问询中还发现了一些别的问题:
>
> 发现ParquetTableSource在flink table planner下, stream/batch 两个模式下都有这个情况:
> 当select一个字段, 并且where条件有 = 判断的话, 输出结果是将where条件
> 直接赋值给了select字段并返回,以下是简单描述:
>
> sql = select event_name from source where event_name = '没有这个值'
>
> 输出结果为:
>
> 没有这个值
> 没有这个值
> 没有这个值
> 没有这个值
>
>
> Jark Wu  于2020年2月17日周一 下午5:03写道:
>
>> 排查了下,确实是个 bug,我开了个 issue 来跟进解决:
>> https://issues.apache.org/jira/browse/FLINK-16113
>>
>> 当前的 workaround 可以将常量放到 selelct 中,比如 select a,b,'windows进程创建' from MyTable
>> where c = 'windows进程创建'
>>
>> Best,
>> Jark
>>
>> On Mon, 17 Feb 2020 at 15:15, jun su  wrote:
>>
>>> 上一个问题补充, 在blink table planner下:
>>>
>>> select event_name from table => 中文编码没问题
>>>
>>> select event_name from table where event_name = 'windows进程创建'=>
>>> 此时中文编码有问题, 应该是在底层userFunction里将where条件为true时, 直接将where条件赋值给了
>>> 输出列,此时出现了编码问题
>>>
>>> 麻烦查证下
>>>
>>> jun su  于2020年2月17日周一 下午1:28写道:
>>>
 hi Jark Wu,

 又发现了一个blink table planner的问题,中文显示乱码,麻烦也查证下, 以下是代码:

 ParquetTableSource parquetTableSource = ParquetTableSource
 .builder()
 .path("/Users/sujun/Downloads/edr/EDR")
 .forParquetSchema(new 
 AvroSchemaConverter().convert(org.apache.avro.Schema.parse(schema, true)))
 .build();

 Table source = bsTableEnv.fromTableSource(parquetTableSource);
 bsTableEnv.createTemporaryView("source",source);

 Table t1 = bsTableEnv.sqlQuery("select event_name from source where 
 event_name = 'windows进程创建'");
 bsTableEnv.toAppendStream(t1,Row.class).print();

 windows\u8FDB\u7A0B\u521B\u5EFA
 windows\u8FDB\u7A0B\u521B\u5EFA
 windows\u8FDB\u7A0B\u521B\u5EFA
 windows\u8FDB\u7A0B\u521B\u5EFA
 windows\u8FDB\u7A0B\u521B\u5EFA
 windows\u8FDB\u7A0B\u521B\u5EFA


 jun su  于2020年2月14日周五 下午6:54写道:

> 1. 发现ParquetTableSource在flink table planner下, stream/batch
> 两个模式下都有以上提出的问题,
> 2. blink table planner下没有以上问题, 但是中文print方法有编码问题
>
> 不清数是不是我使用问题,麻烦查证下
>
> jun su  于2020年2月14日周五 下午6:30写道:
>
>> hi Jark Wu,
>>
>> 抱歉以下是我的代码和结果:
>>
>> public static void main(String[] args) throws Exception {
>> ExecutionEnvironment fbEnv = 
>> ExecutionEnvironment.getExecutionEnvironment();
>> BatchTableEnvironment fbTableEnv = 
>> BatchTableEnvironment.create(fbEnv);
>>
>> String schema = 
>> 

Re:Re: flink-1.10.0通过run -m yarn-cluster提交任务时异常

2020-02-17 文章 amenhub
hi, Weihua


如你所说,我想要通过flink on yarn的run方式提交任务到集群上,但是当我运行./bin/flink run -m yarn-cluster 
../examples/batch/WordCount.jar ,还是一样的错误,
日志信息只有这么一些;如果按您所说,是因为没有成功加载FlinkYarnSessionCli导致的,那导致没有成功加载的原因有哪些方面呢?谢谢!


祝好,amenhub







在 2020-02-18 11:29:13,"Weihua Hu"  写道:
>Hi, amenhub
>
>你应该是要把作业提交到 yarn 上吧。这个错误应该没有正确的加载 FlinkYarnSessionCli 
>导致的,这些日志不是失败的根因。可以多提供一些日志看看。
>
>
>Best
>Weihua Hu
>
>> 2020年2月18日 10:56,amenhub  写道:
>> 
>> parseHostPortAddress
>


Re: flink-1.10.0通过run -m yarn-cluster提交任务时异常

2020-02-17 文章 Weihua Hu
Hi, amenhub

你应该是要把作业提交到 yarn 上吧。这个错误应该没有正确的加载 FlinkYarnSessionCli 
导致的,这些日志不是失败的根因。可以多提供一些日志看看。


Best
Weihua Hu

> 2020年2月18日 10:56,amenhub  写道:
> 
> parseHostPortAddress



Flink 1.10执行tpc-ds求助

2020-02-17 文章 faaron zheng
我用的是之前flink tpc-ds性能优化比赛的代码来执行tpc-ds, 
flink版本是1.10。简单的修改了一下flink源码中ParquetTableSource的构造函数,支持传递TableSchema。但是在运行query1的时候报了如下的错,在校验数据源的时候decimal精度和范围不一致导致,而数据本生的格式就是Decimal(7,2)。请问这个校验是必须的么?我是应该在哪里转换么?
  

flink-1.10.0通过run -m yarn-cluster提交任务时异常

2020-02-17 文章 amenhub
各位好,


The program finished with the following exception:

java.lang.IllegalArgumentException: The given host:port ('yarn-cluster') 
doesn't contain a valid port

at org.apache.flink.util.NetUtils.validateHostPortString(NetUtils.java:108)

at org.apache.flink.util.NetUtils.parseHostPortAddress(NetUtils.java:88)


祝好!

Re: ParquetTableSource在blink table planner下的使用问题

2020-02-17 文章 Jark Wu
排查了下,确实是个 bug,我开了个 issue 来跟进解决:
https://issues.apache.org/jira/browse/FLINK-16113

当前的 workaround 可以将常量放到 selelct 中,比如 select a,b,'windows进程创建' from MyTable
where c = 'windows进程创建'

Best,
Jark

On Mon, 17 Feb 2020 at 15:15, jun su  wrote:

> 上一个问题补充, 在blink table planner下:
>
> select event_name from table => 中文编码没问题
>
> select event_name from table where event_name = 'windows进程创建'=>
> 此时中文编码有问题, 应该是在底层userFunction里将where条件为true时, 直接将where条件赋值给了
> 输出列,此时出现了编码问题
>
> 麻烦查证下
>
> jun su  于2020年2月17日周一 下午1:28写道:
>
>> hi Jark Wu,
>>
>> 又发现了一个blink table planner的问题,中文显示乱码,麻烦也查证下, 以下是代码:
>>
>> ParquetTableSource parquetTableSource = ParquetTableSource
>> .builder()
>> .path("/Users/sujun/Downloads/edr/EDR")
>> .forParquetSchema(new 
>> AvroSchemaConverter().convert(org.apache.avro.Schema.parse(schema, true)))
>> .build();
>>
>> Table source = bsTableEnv.fromTableSource(parquetTableSource);
>> bsTableEnv.createTemporaryView("source",source);
>>
>> Table t1 = bsTableEnv.sqlQuery("select event_name from source where 
>> event_name = 'windows进程创建'");
>> bsTableEnv.toAppendStream(t1,Row.class).print();
>>
>> windows\u8FDB\u7A0B\u521B\u5EFA
>> windows\u8FDB\u7A0B\u521B\u5EFA
>> windows\u8FDB\u7A0B\u521B\u5EFA
>> windows\u8FDB\u7A0B\u521B\u5EFA
>> windows\u8FDB\u7A0B\u521B\u5EFA
>> windows\u8FDB\u7A0B\u521B\u5EFA
>>
>>
>> jun su  于2020年2月14日周五 下午6:54写道:
>>
>>> 1. 发现ParquetTableSource在flink table planner下, stream/batch
>>> 两个模式下都有以上提出的问题,
>>> 2. blink table planner下没有以上问题, 但是中文print方法有编码问题
>>>
>>> 不清数是不是我使用问题,麻烦查证下
>>>
>>> jun su  于2020年2月14日周五 下午6:30写道:
>>>
 hi Jark Wu,

 抱歉以下是我的代码和结果:

 public static void main(String[] args) throws Exception {
 ExecutionEnvironment fbEnv = 
 ExecutionEnvironment.getExecutionEnvironment();
 BatchTableEnvironment fbTableEnv = BatchTableEnvironment.create(fbEnv);

 String schema =