Hive 配置单元,将不同的行传递到函数中

Hive 配置单元,将不同的行传递到函数中,hive,hiveql,Hive,Hiveql,我有两张桌子。在第一个表中,每行表示一个多边形。在第二个表中,每行代表一个点。我想知道每个点是否在一个多边形内。我尝试在蜂巢中使用ST_包含、ST_多多边形和ST_点。我认为有一种方法可以将所有行输入ST_MultiPolygon,但不确定如何实现。以下是我的测试数据 pid |形状 1 | [2,0,3,0,3,1,2,1] 2 |[0,0,1,0,1,1,0,1] 这是多边形表 pid | x | y 1 | 0.5 | 0.5 2 | 2.1 | 0.5 3 | 1.5 |

我有两张桌子。在第一个表中,每行表示一个多边形。在第二个表中,每行代表一个点。我想知道每个点是否在一个多边形内。我尝试在蜂巢中使用ST_包含、ST_多多边形和ST_点。我认为有一种方法可以将所有行输入ST_MultiPolygon,但不确定如何实现。以下是我的测试数据

pid |形状
1 |  [2,0,3,0,3,1,2,1]
2 |[0,0,1,0,1,1,0,1]

这是多边形表


pid | x | y
1   | 0.5 | 0.5
2   | 2.1 | 0.5
3   | 1.5 | 0.5
这是积分表

我想得到这样的结果


pid |在
1 |正确
2 |正确
3 |错误

以下是我认为解决这个问题的方法。我想做的是确定一个点是否在存储在蜂巢中的某个多边形中。假设我有两个多边形[2,0,3,0,3,1,2,1]和[0,0,1,0,1,1,0,1],实际上它们是[(2,0),(3,0),(3,1),(2,1)]和[(0,0),(1,0),(1,1),(0,1)]。我之所以以这种奇怪的方式存储,是因为ST_MultiPolygon将这种格式作为参数,就像ST_MultiPolygon(数组(2,0,3,0,3,1,2,1))。结合ST_多边形、ST_包含和ST_点,我可以得到一个布尔结果,指示点是否在多边形中。ST_MultiPolygon甚至可以使用多个数组,例如ST_MultiPolygon(数组(2,0,3,0,3,1,2,1)、数组(0,0,1,0,1,1,0,1))。通过这种方式,如果有一种方法可以将所有多边形馈送到多多边形中,那么我知道其中一个多边形中的一个点是否存在


如有任何意见,将不胜感激

你能解释清楚吗?我在最后加了一段。希望这能把问题弄清楚一点。