flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT
select cast(cf as Int) cf from hbase_table 直接这样转换不成功 |
Hi
row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。 Best, Yichao Yang 发自我的iPhone ------------------ 原始邮件 ------------------ 发件人: Zhou Zach <[hidden email]> 发送时间: 2020年6月16日 19:10 收件人: user-zh <[hidden email]> 主题: 回复:flink sql 中怎么把ROW类型转换成INT flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT select cast(cf as Int) cf from hbase_table 直接这样转换不成功 |
Hi
Hbase connector中,除 rowkey 字段外,所有列簇 在FLINK中对应的类型都是 符合类型ROW(),这是因为ROW中可以包括多个 field 能够和 hbase 中的一个列簇可以包含多个列很好地对应。贴个文档,你一看就懂: CREATE TABLE hTable ( rowkey INT, family1 ROW<q1 INT>, family2 ROW<q2 STRING, q3 BIGINT>, family3 ROW<q4 DOUBLE, q5 BOOLEAN, q6 STRING>, PRIMARY KEY (rowkey) NOT ENFORCED ) WITH (...); -- scan data from the HBase table SELECT rowkey, family1.q1, family3.q4, family3.q6 FROM hTable; 这个文档正在编写当中,很快就可以在官网上看到。 祝好, Leonard Xu > 在 2020年6月16日,19:16,Yichao Yang <[hidden email]> 写道: > > Hi > > > row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。 > > > Best, > Yichao Yang > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Zhou Zach <[hidden email]> > 发送时间: 2020年6月16日 19:10 > 收件人: user-zh <[hidden email]> > 主题: 回复:flink sql 中怎么把ROW类型转换成INT > > > > flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT > select cast(cf as Int) cf from hbase_table > 直接这样转换不成功 |
用.访问成功了,不过报了另外一个错误:
offset (0) + length (4) exceed the capacity of the array: 2 这个错误提示 是不是 hbase取出来的int类型, 用users.addColumn("cf", "age", classOf[Integer]) 来转换是不是不对, 怎么把int转换成Integer呢或者把Integer转换成int ------------------ 原始邮件 ------------------ 发件人: "Leonard Xu"<[hidden email]>; 发送时间: 2020年6月16日(星期二) 晚上8:50 收件人: "user-zh"<[hidden email]>; 主题: Re: flink sql 中怎么把ROW类型转换成INT Hi Hbase connector中,除 rowkey 字段外,所有列簇 在FLINK中对应的类型都是 符合类型ROW(),这是因为ROW中可以包括多个 field 能够和 hbase 中的一个列簇可以包含多个列很好地对应。贴个文档,你一看就懂: CREATE TABLE hTable ( rowkey INT, family1 ROW<q1 INT>, family2 ROW<q2 STRING, q3 BIGINT>, family3 ROW<q4 DOUBLE, q5 BOOLEAN, q6 STRING>, PRIMARY KEY (rowkey) NOT ENFORCED ) WITH (...); -- scan data from the HBase table SELECT rowkey, family1.q1, family3.q4, family3.q6 FROM hTable; 这个文档正在编写当中,很快就可以在官网上看到。 祝好, Leonard Xu > 在 2020年6月16日,19:16,Yichao Yang <[hidden email]> 写道: > > Hi > > > row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。 > > > Best, > Yichao Yang > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Zhou Zach <[hidden email]&gt; > 发送时间: 2020年6月16日 19:10 > 收件人: user-zh <[hidden email]&gt; > 主题: 回复:flink sql 中怎么把ROW类型转换成INT > > > > flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT > select cast(cf as Int) cf from hbase_table > 直接这样转换不成功 |
Hi, > 在 2020年6月17日,09:33,Zhou Zach <[hidden email]> 写道: > > 怎么把int转换成Integer呢或者把Integer转换成int 我理解 Integer 和 int 是相同的类型,INT 是SQL的类型,Integer 是java中的具体实现类,这个错误看起来是在读 hbase中的数据时,数据的index不对, 能把 sql 和异常栈贴下吗? Best, Leonard Xu |
可能是hbase里面有脏数据的问题,新建了一个新的hbase表,可以了,感谢回复
------------------ 原始邮件 ------------------ 发件人: "Leonard Xu"<[hidden email]>; 发送时间: 2020年6月17日(星期三) 上午10:45 收件人: "user-zh"<[hidden email]>; 主题: Re: flink sql 中怎么把ROW类型转换成INT Hi, > 在 2020年6月17日,09:33,Zhou Zach <[hidden email]> 写道: > > 怎么把int转换成Integer呢或者把Integer转换成int 我理解 Integer 和 int 是相同的类型,INT 是SQL的类型,Integer 是java中的具体实现类,这个错误看起来是在读 hbase中的数据时,数据的index不对, 能把 sql 和异常栈贴下吗? Best, Leonard Xu |
Free forum by Nabble | Edit this page |