开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

在Flink如果t=123,如果t里面不包含$,这个函数返回啥?空字符串还是123?

lateral table(string_split(t, '$')) 在Flink如果t=123,如果t里面不包含$,这个函数返回啥?空字符串还是123?

展开
收起
三分钟热度的鱼 2023-12-06 19:08:41 48 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    lateral table(string_split(t, '$')) 在Flink中,如果t=123,且t里面不包含$,这个函数会返回一个空的lateral table。因为在这种情况下,string_split函数无法将字符串按照'$'进行分割,所以返回的结果是一个空的lateral table。

    2023-12-06 21:54:05
    赞同 展开评论 打赏
  • 在Apache Flink中,string_split(t, '$')函数是用于将字符串t按照指定的分隔符(在这个例子中为'$')进行分割,并返回一个包含所有子串的表。如果字符串t不包含分隔符,那么结果会是一个只包含一个元素的表,这个元素就是原始字符串t

    所以,在你给出的例子中,如果t=123t不包含字符$,那么lateral table(string_split(t, '$'))的结果将会是一个包含单个元素的表,该元素的值为123

    需要注意的是,string_split()函数通常与Flink SQL中的LATERAL TABLE关键字一起使用,以便于将函数返回的表作为一个新的关系(即一个新的虚拟表)进行查询和操作。例如:

    SELECT * FROM YourTable AS T, LATERAL TABLE(string_split(T.yourColumn, '$')) AS splitResult;
    

    在这个例子中,string_split(T.yourColumn, '$')将被当作一个新的关系(splitResult),你可以像处理其他表一样对它进行查询和操作。

    2023-12-06 20:21:33
    赞同 展开评论 打赏
  • 当分隔符在字符串中不存在时,table function 会将整个字符串视为一个未被分割的完整元素,而不是空元素。这是因为分割操作并未发生,所以原始字符串作为一个整体返回。此回答整理自钉群“实时计算Flink产品交流群”

    2023-12-06 20:14:44
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载