Hive空間演算 -4-


何が良かったのか5時間程度で終わってた。
思い返せば仮想マシンのリソース割当を増やしまくってたかも。

SELECT 
  jpn71.SIKUCHOSON 
 ,count(*) cnt 
FROM
 addrwkt
JOIN
 jpn71
WHERE
 ST_Contains(jpn71.shape, ST_Point(addrwkt.lon, addrwkt.lat))
GROUP BY
 jpn71.SIKUCHOSON
ORDER BY
 cnt desc;

あってるかは知らん。

福智町  1
甲佐町  1
山江村  1
勝浦町  1
日高村  1
上板町  1
天栄村  1
Time taken: 17632.929 seconds, Fetched: 1501 row(s)

一応やったこと。
・FROMを件数多い点側にしとく。
ぐらいかなぁ。

県での集計がうまくいってないので、一旦データ化して再挑戦。

CREATE TABLE IF NOT EXISTS
 kenjpn
  (
   KEN string
   ,SHAPE binary
  )
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
;

INSERT OVERWRITE TABLE
 kenjpn
SELECT
  jpn71.KEN,
  ST_Aggr_Union(jpn71.shape) SHAPE
FROM
  jpn71
GROUP BY
  jpn71.KEN
Time taken: 29.559 seconds

結果取れず。もしかしてマルチパート苦手?

SELECT
 jpn.KEN
FROM
 kenjpn jpn
WHERE
 ST_Contains(jpn.shape, ST_Point(135, 35));

一応、やってみるがやはり284071ばかり。

SELECT
 jpn.KEN
 ,count(*) cnt 
FROM
 addrwkt
JOIN
 kenjpn jpn
WHERE
 ST_Contains(jpn.shape, ST_Point(addrwkt.lon, addrwkt.lat))
GROUP BY
 jpn.KEN
ORDER BY
 cnt desc;
和歌山県        284071
千葉県  284071
Time taken: 3989.679 seconds, Fetched: 47 row(s)
カテゴリー: 開発, 設計 タグ: , パーマリンク