逗号分隔的字符串到单个行 - Impala SQL

ifo*_*los 5 sql split cloudera impala

假设我们有一张表:

Owner   | Pets
------------------------------
Jack    | "dog, cat, crocodile" 
Mary    | "bear, pig"
Run Code Online (Sandbox Code Playgroud)

我想得到这样的结果:

Owner   | Pets
------------------------------
Jack    | "dog"
Jack    | "cat"
Jack    | "crocodile" 
Mary    | "bear"
Mary    | "pig"
Run Code Online (Sandbox Code Playgroud)

我通过谷歌搜索找到了一些类似问题的解决方案,但 Impala SQL 不提供任何这些功能来应用建议的解决方案。

任何帮助将不胜感激!

tuc*_*son 5

Impala 中的工作如下:

split_part(string source, string delimiter, bigint n)
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到文档:

https://www.cloudera.com/documentation/enterprise/5-9-x/topics/impala_string_functions.html

  • 该解决方案一次仅适用于一个令牌。如果没有显式调用每个索引位置,它不会将值干净地展平为单独的行。从技术上讲,这可能是一种解决方法,但会非常冗长和混乱。 (3认同)