2016-08-18 8 views
0

ある期間にLat/Lon形式のユーザーのデータセットがあり、GIS関数を使用してエントリをフィルタリングしたいと考えています。例えば、ポリゴン(G_世界のST_Contains)内のエントリを検索し、ESRI geodatabaseファイルを使用して、ユーザーエントリがある区画である列を追加します。を検索しましたが、この時点でのPythonのサポートはnot workingです。私はまた、Esri SpatialのGIS関数のHiveサポートを見つけましたが、PySparkの起動時に正しいパッケージをロードする方法や、PySparkシェルに必要な関数を登録する方法についてのドキュメントは見つかりませんでした(ST_Polygon、ST_Containsなど... )。PySparkのエントリを地理的にフィルタリングする方法は?

他の選択肢がありますか? |

>>> sqlContext 
<pyspark.sql.context.HiveContext object at 0x7f3294093b10> 

サンプルデータセット:私はので、私はPySparkシェルでHiveContextオブジェクトへのアクセス権を持っているのAzureのHDInsightを使用していますタイムスタンプ|ユーザー|緯度|経度| | 1462838468 | 49B4361512443A4DA ... | 39.777982 | -7.054599 | | 1462838512 | 49B4361512443A4DA ... | 39.777982 | -7.054599 | | 1462838389 | 49B4361512443A4DA ... | 39.777982 | -7.054599 | | 1462838497 | 49B4361512443A4DA ... | 39.777982 | -7.054599 | | 1465975885 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1457723815 | 405C238E25FE0B9E7 ... | 37.177322 | -7.426781 | | 1457897289 | 405C238E25FE0B9E7 ... | 37.177922 | -7.447443 | | 1457899229 | 405C238E25FE0B9E7 ... | 37.177922 | -7.447443 | | 1457972626 | 405C238E25FE0B9E7 ... | 37.18059 | -7.46128 | | 1458062553 | 405C238E25FE0B9E7 ... | 37.177322 | -7.426781 | | 1458241825 | 405C238E25FE0B9E7 ... | 37.178172 | -7.444512 | | 1458244457 | 405C238E25FE0B9E7 ... | 37.178172 | -7.444512 | | 1458412513 | 405C238E25FE0B9E7 ... | 37.177322 | -7.426781 | | 1458412292 | 405C238E25FE0B9E7 ... | 37.177322 | -7.426781 | | 1465197963 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1465202192 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1465923817 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1465923766 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1465923748 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 | | 1465923922 | 6E9E0581E2A032FD8 ... | 37.118362 | -8.205041 |

答えて

1

任意のPythonライブラリをSparkで使用できます。ライブラリがSpark固有である必要はありません。いくつかのランダム検索で推奨されているGIS Pythonライブラリの一部は、http://spatialdemography.org/essential-python-geospatial-libraries/

です。使用するライブラリをインストールする必要があります。ライブラリをインストールする方法についてここで見つけることができます:https://stackoverflow.com/a/38754345/1663781

その後、単純にそうように、ライブラリのいずれかを使用して、あなたのRDDに列を追加します。

from my_gis_library_of_choice import in_polygon, district 

text_lines = sc.textFile('wasb:///mydataset') 
split = text_lines.map(lambda line: line.split('|')) 
with_extra_columns = split.map(lambda r: r.append(in_polygon(r[2], r[3])).append(district(r[2], r[3]))) 
関連する問題