我的table是这样的:
表名:mytab
+----+---------------------+
| ID | Codes |
+----+---------------------+
| 1 | ABC,DEF,GHI,JLK,MNO |
+----+---------------------+
我正在开发级联应用程序,该应用程序应将上表转换为以下内容:
+----+---------------------+------+
| ID | Codes | code |
+----+---------------------+------+
| 1 | ABC,DEF,GHI,JLK,MNO | ABC |
+----+---------------------+------+
| 1 | ABC,DEF,GHI,JLK,MNO | DEF |
+----+---------------------+------+
| 1 | ABC,DEF,GHI,JLK,MNO | GHI |
+----+---------------------+------+
| 1 | ABC,DEF,GHI,JLK,MNO | JLK |
+----+---------------------+------+
| 1 | ABC,DEF,GHI,JLK,MNO | MNO |
+----+---------------------+------+
如果我使用Hive,它可以很容易地做到使用侧视图。
SELECT
ID, Codes, Code
FROM
myTab LATERAL VIEW explode(Codes) codesTab AS code
但我想在级联中做同样的事情。有办法吗?
1条答案
按热度按时间sc4hvdpw1#
可以使用函数来完成(可能还有其他方法)。只需要为每个令牌向outputcollector添加新的元组。
比如:
通过上述函数,我得到了预期的输出。
在程序集中,上述函数可以调用为: