2つの空間データ・セットのレコードの結合

post

/spatialviewer/api/v1/spark/spatialJoin

両方のデータ・セットのレコード間の空間関係に基づいて、空間データ・セットのレコードを別の空間データ・セットと結合します。

リクエスト

サポートされるメディア・タイプ
問合せパラメータ
  • trueの場合、この操作は非同期で実行されます。
    デフォルト値: false
  • falseの場合、非同期の場合、レスポンスにはHDFS内の結果の場所が含まれ、実際の結果は含まれません。
    デフォルト値: true
本文()
ジョブ詳細
ルート・スキーマ: SpatialJoinJobInfo
型: object
ソースの表示
  • 1つ目のデータ・セットのHDFS内のファイルのパス。indexPath1が指定されていない場合、このプロパティを追加します。
    例: /user/oracle/spatialviewer/tweetsJune.json
  • 2つ目のデータ・セットのHDFS内のファイルのパス。indexPath2が指定されていない場合、このプロパティを追加します。
    例: /user/oracle/spatialviewer/worldStates.json
  • spatialOperationがWithinDistanceの場合、距離が必要です。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。
    例: 1000
  • 1つ目のデータ・セットのHDFS内の索引パス。このプロパティが指定されていない場合は、dataPath1、inputFormatClass1、keyClass1、valueClass1およびrecordInfoProviderClass1を指定します。
    例: /user/oracle/spatialviewer/TweetsJune
  • 2つ目のデータ・セットのHDFS内の索引パス。このプロパティが指定されていない場合は、dataPath2、inputFormatClass2、keyClass2、valueClass2およびrecordInfoProviderClass2を指定します。
    例: /user/oracle/spatialviewer/WorldStates
  • 1つ目のデータ・セットの入力形式クラス。indexPath1が指定されていない場合に設定可能なオプションのプロパティ。入力形式クラスが指定されていない場合は、SparkContextのtextFileが使用されます。
    例: oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat
  • 2つ目のデータ・セットの入力形式クラス。indexPath2が指定されていない場合に設定可能なオプションのプロパティ。入力形式クラスが指定されていない場合は、SparkContextのtextFileが使用されます。
    例: oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat
  • カスタムRecordInfoProviderまたはInputFormatのようなユーザー定義クラスを持つJAR名。InputFormatクラスまたはRecordInfoProviderクラスがAPI、またはHadoop APIクラスにない場合、ユーザー定義クラスのJARが提供されます。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。useIndexがfalseの場合に設定可能なオプションのプロパティ。
    例: myjar.jar
  • 1つ目のデータ・セットの入力形式のキーのクラス。入力形式が定義されている場合、このプロパティは必須です。
    例: org.apache.hadoop.io.LongWritable
  • 2つ目のデータ・セットの入力形式のキーのクラス。入力形式が定義されている場合、このプロパティは必須です。
    例: org.apache.hadoop.io.LongWritable
  • ジョブの出力パス。asynchronousがtrueの場合は、このプロパティを指定します。
    例: /user/oracle/spatialviewer/SpatialJoinResult
  • 1つ目のデータ・セットの空間情報を提供するクラス。indexPath1が指定されていない場合、このプロパティを設定します。
    例: oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider
  • 2つ目のデータ・セットの空間情報を提供するクラス。indexPath2が指定されていない場合、このプロパティを設定します。
    例: oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider
  • レコードを結合するための空間関係を定義する空間操作。指定できる値は、None、AnyInteract、IsInside、WithinDistanceおよびContainsです。デフォルト値はAnyInteractです。
    例: AnyInteract
  • ジオメトリのSRID。
    例: 8307
  • 空間操作を実行するときに使用される許容差を表すdouble値。
    例: 0.05
  • 1つ目のデータ・セットの入力形式の値のクラス。入力形式が定義されている場合、このプロパティは必須です。
    例: org.apache.hadoop.io.Text
  • 2つ目のデータ・セットの入力形式の値のクラス。入力形式が定義されている場合、このプロパティは必須です。
    例: org.apache.hadoop.io.Text
先頭に戻る

レスポンス

サポートされるメディア・タイプ

200レスポンス

要求が成功しました。レスポンスは、結合分析に一致する2つの機能の集合です。fullResultがfalseの場合、レスポンスには、HDFS内の結果の場所が含まれています。
本文()
ルート・スキーマ: SpatialJoinRecordsInfo
型: object
ソースの表示
ネストされたスキーマ: features
型: array
ソースの表示
ネストされたスキーマ: SpatialJoinRecordInfo
型: object
ソースの表示
ネストされたスキーマ: features
型: array
ソースの表示
ネストされたスキーマ: Feature
型: object
ソースの表示
ネストされたスキーマ: Geometry
型: object
ソースの表示
ネストされたスキーマ: coordinates
型: array
ソースの表示
例:
[
    -73.86659,
    50.41706
]
ネストされたスキーマ: properties
型: object
フィルタ処理されたレコードの追加フィールド(2.8.2.1「空間の索引付けクラスの構造」を参照)。たとえば、followers_count、friends_count、locationおよびuser_idという名前の追加フィールドを含めることができます
ソースの表示

202レスポンス

非同期リクエストを受け入れました
本文()
ルート・スキーマ: AsyncSpatialJoinJobResponse
型: object
ソースの表示
先頭に戻る

次の例では、cURLを使用してRESTリソースに対するPOSTリクエストを発行することによって、空間結合を実行する方法を示しています。

curl -v -X POST "http://localhost:8045/spatialviewer/api/v1/spark/spatialJoin?fullResult=true" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"srid\": 8307,  \"tolerance\": 0.05,  \"spatialOperation\": \"AnyInteract\",  \"indexPath1\": \"/user/oracle/HOL/tweetsJune\",  \"indexPath2\": \"/user/oracle/HOL/worldRegions\" }" 

レスポンス・ヘッダーの例

次に、レスポンス・ヘッダーの例を示します。

HTTP/1.1 200 OK Date: Wed, 15 Nov 2017 17:50:38 GMT Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, DELETE, PUT Access-Control-Allow-Headers: Content-Type, Accept Transfer-Encoding: chunked  Content-Type: application/json

レスポンス本文の例

次の例は、レスポンス本文の内容をJSON形式で示したものです(1つのレコードを含みます)。

{"type":"FeatureCollection","features":[{"type":"Feature","_id":"375628eb-cf33-406f-afb7-0c89a9240153","geometry":{"type":"Polygon","coordinates":[[-106,25,-106,30,-104,30,-104,25,-106,25]]},"properties":{"STATE":"Buryat, Russia"}},{"type":"Feature","_id":"ecada68e-5a02-48e5-931d-a9daf5920417","geometry":{"type":"Point","coordinates":[109.31296,55.63401]},"properties":{"RECORD_ID":"4535","followers_count":"67","friends_count":"199","location":"Buryat","user_id":"5229287"}}]} 
先頭に戻る