1. oho-sugu

    Posted

    oho-sugu
Changes in title
+OSMのpbfをparquetに変換してAWSのEMRで触ってみる
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,54 @@
+# 目的
+
+OSMの全球データをSparkあたりで処理したいな、のための前処理です。
+Apache Parquetというデータ形式に、Open Street MapのPBF形式から変換します。
+
+# osm-parquetizerを使う
+
+世の中にはだいたい同じようなことを考えてはるか先に進んでいる、先人がいるものです。
+OSMのPBFをSparkで処理できないか調査していたら、[adrianulbona/osm-parquetizer](https://github.com/adrianulbona/osm-parquetizer)というリポジトリを見つけました。まさに、PBF形式を、Apache Parquetというカラム志向のデータ形式に変換するものです。
+今回は、これを使ってみましょう。
+
+環境はUbuntu19.10を手元のVMに用意しました。
+aptで必要なものを入れます。
+
+```
+apt install default-jdk git maven
+```
+
+そして、Githubからリポジトリをクローンします。
+
+```
+git clone git@github.com:adrianulbona/osm-parquetizer.git
+```
+
+ビルドします。
+
+```
+cd osm-parquetizer/
+mvn clean package
+```
+
+試しに、東京だけを切り出したPBFファイルで試してみます。
+
+```
+java -Xmx768M -jar target/osm-parquetizer-1.0.1-SNAPSHOT.jar ../../Tokyo.osm.pbf
+```
+
+```
+suguru@thermosphere:~/repo/osm-parquetizer$ ls -lh ~
+total 136M
+drwxrwxr-x 3 suguru suguru 4.0K Nov 28 17:51 repo
+-rw-rw-r-- 1 suguru suguru 30M Nov 22 19:26 Tokyo.osm.pbf
+-rw-r--r-- 1 suguru suguru 78M Dec 4 17:03 Tokyo.osm.pbf.node.parquet
+-rw-r--r-- 1 suguru suguru 493K Dec 4 17:03 Tokyo.osm.pbf.relation.parquet
+-rw-r--r-- 1 suguru suguru 29M Dec 4 17:03 Tokyo.osm.pbf.way.parquet
+```
+
+変換されています。
+実際にやってみたところ、Java実行時の最大ヒープ量を設定する-Xmxで768MByteを指定しないと、OutOfMemoryで完了しませんでした。
+思った以上にメモリを食いそうなので、全球データが実行できるか不安です。
+
+# 今後
+
+ParquetをSparkで処理するのをやってみる。