【发布时间】:2016-09-20 19:37:42
【问题描述】:
假设我们有一张桌子:
Owner | Pets
------------------------------
Jack | "dog, cat, crocodile"
Mary | "bear, pig"
我想得到一个结果:
Owner | Pets
------------------------------
Jack | "dog"
Jack | "cat"
Jack | "crocodile"
Mary | "bear"
Mary | "pig"
我通过谷歌搜索找到了一些类似问题的解决方案,但 Impala SQL 不提供任何这些功能来应用建议的解决方案。
任何帮助将不胜感激!
【问题讨论】:
-
您能否添加一些您尝试过的方法和结果的详细信息,以免人们重复您失败的努力?
-
你想要做的是“扁平化”一个嵌套的数据结构,而那个嵌套的东西违反了整个实体关系的概念。所以它不能用标准 SQL来完成;仅具有特定于数据库的扩展,这些扩展可能存在也可能不存在,并且在不同数据库之间会有很大差异。抱歉,Impala 不是为这种丑陋的 ETL 设计的;您应该使用 Pig 或 Hive 或其他任何东西准备数据,将其加载到 Hive 表中,然后使用
REFRESH <table_name>将其公开给 Impala