Hive 计算蜂巢中的成对距离

Hive 计算蜂巢中的成对距离,hive,hiveql,Hive,Hiveql,我在配置单元中有一个数据集,如下所示: Point Latitude Longitude A 40.3 74.8 B 12.5 -45.1 C -32.7 87.6 D 23.9 -67.2 ... ... ... 如何获得一个矩阵,其中每个点与所有其他点之间的距离?即,距离AB、AC、AD、BC、BD、CD等。

我在配置单元中有一个数据集,如下所示:

   Point  Latitude  Longitude
       A      40.3       74.8
       B      12.5      -45.1
       C     -32.7       87.6
       D      23.9      -67.2
     ...       ...        ...
如何获得一个矩阵,其中每个点与所有其他点之间的距离?即,距离AB、AC、AD、BC、BD、CD等。如果以线性格式输出更容易,也可以。我希望能够使用配置单元查询语言完成这一切


编辑:数据包含数十万行。最后,我希望能够识别给定点特定半径内的所有点。因此,如果有一种方法可以通过先过滤出点或使用某种近似值来减少计算量,我也愿意这样做。

一种可能的解决方案是,在没有任何条件的情况下,对其本身进行相同的连接。输出应该是这样的

      query1  query1      query1    query2 query2     query2
      Point  Latitude  Longitude    Point  Latitude  Longitude
       A      40.3       74.8       A      40.3       74.8
       A      40.3       74.8       B      12.5      -45.1
       A      40.3       74.8       C     -32.7       87.6
       A      40.3       74.8       D      23.9      -67.2
      ...
将上述输出用作子查询,并计算点之间的距离。基本上,query1.Point和query2.Point的concat会给出一对,纬度和经度的距离函数会给出它们之间的距离


希望这能有所帮助。

谢谢你,阿马尔。我会试试这个,让你知道它是怎么回事。