You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Yichao Yang <10...@qq.com> on 2020/06/16 11:16:19 UTC
回复:flink sql 中怎么把ROW类型转换成INT
Hi
row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。
Best,
Yichao Yang
发自我的iPhone
------------------ 原始邮件 ------------------
发件人: Zhou Zach <ispmd@foxmail.com>
发送时间: 2020年6月16日 19:10
收件人: user-zh <user-zh@flink.apache.org>
主题: 回复:flink sql 中怎么把ROW类型转换成INT
flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT
select cast(cf as Int) cf from hbase_table
直接这样转换不成功
回复: flink sql 中怎么把ROW类型转换成INT
Posted by Zhou Zach <is...@foxmail.com>.
可能是hbase里面有脏数据的问题,新建了一个新的hbase表,可以了,感谢回复
------------------ 原始邮件 ------------------
发件人: "Leonard Xu"<xbjtdcq@gmail.com>;
发送时间: 2020年6月17日(星期三) 上午10:45
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: flink sql 中怎么把ROW类型转换成INT
Hi,
> 在 2020年6月17日,09:33,Zhou Zach <ispmd@foxmail.com> 写道:
>
> 怎么把int转换成Integer呢或者把Integer转换成int
我理解 Integer 和 int 是相同的类型,INT 是SQL的类型,Integer 是java中的具体实现类,这个错误看起来是在读 hbase中的数据时,数据的index不对,
能把 sql 和异常栈贴下吗?
Best,
Leonard Xu
Re: flink sql 中怎么把ROW类型转换成INT
Posted by Leonard Xu <xb...@gmail.com>.
Hi,
> 在 2020年6月17日,09:33,Zhou Zach <is...@foxmail.com> 写道:
>
> 怎么把int转换成Integer呢或者把Integer转换成int
我理解 Integer 和 int 是相同的类型,INT 是SQL的类型,Integer 是java中的具体实现类,这个错误看起来是在读 hbase中的数据时,数据的index不对,
能把 sql 和异常栈贴下吗?
Best,
Leonard Xu
回复: flink sql 中怎么把ROW类型转换成INT
Posted by Zhou Zach <is...@foxmail.com>.
用.访问成功了,不过报了另外一个错误:
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"<xbjtdcq@gmail.com>;
发送时间: 2020年6月16日(星期二) 晚上8:50
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: 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 <1048262223@qq.com> 写道:
>
> Hi
>
>
> row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。
>
>
> Best,
> Yichao Yang
>
>
>
> 发自我的iPhone
>
>
> ------------------ 原始邮件 ------------------
> 发件人: Zhou Zach <ispmd@foxmail.com&gt;
> 发送时间: 2020年6月16日 19:10
> 收件人: user-zh <user-zh@flink.apache.org&gt;
> 主题: 回复:flink sql 中怎么把ROW类型转换成INT
>
>
>
> flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT
> select cast(cf as Int) cf from hbase_table
> 直接这样转换不成功
Re: flink sql 中怎么把ROW类型转换成INT
Posted by Leonard Xu <xb...@gmail.com>.
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 <10...@qq.com> 写道:
>
> Hi
>
>
> row类型是不能强转int的,可以找一下阿里云flink sql的文档,其中有介绍哪些数据类型可以互转。
>
>
> Best,
> Yichao Yang
>
>
>
> 发自我的iPhone
>
>
> ------------------ 原始邮件 ------------------
> 发件人: Zhou Zach <ispmd@foxmail.com>
> 发送时间: 2020年6月16日 19:10
> 收件人: user-zh <user-zh@flink.apache.org>
> 主题: 回复:flink sql 中怎么把ROW类型转换成INT
>
>
>
> flink sql从HBase中读取的类型为ROW,怎么把ROW类型转换成INT
> select cast(cf as Int) cf from hbase_table
> 直接这样转换不成功