Spark SQLでDSE Graphの頂点とエッジのクエリーを行う
Spark SQLでは、DSE Graphの頂点およびエッジ・テーブルのクエリーを行うことができます。
グラフ名_vertices
とグラフ名_edges
です。たとえば、gods
という名前のグラフがある場合、dse_graph.gods_vertices
テーブルおよびdse_graph.gods_edges
テーブルのSpark SQLで頂点とエッジにアクセスできます。 select * from dse_graph.gods_vertices;スペルは同じでも、大文字と小文字で異なるプロパティがある場合は(
id
とId
など)、--conf spark.sql.caseSensitive=true
オプションを使用してSpark SQLを起動します。始める前に
GraphとSparkの両方を有効にした状態で、クラスターを起動します。
手順
-
Spark SQLシェルを起動します。
dse spark-sql
-
SELECT
文を使用して、頂点とエッジのクエリーを行います。USE dse_graph; SELECT * FROM gods_vertices where name = 'Zeus';
-
クエリー内の頂点とエッジを統合します。
頂点は、
id
カラムによって識別されます。エッジ・テーブルには、頂点の開始点と終了点をそれぞれ識別するsrc
列とdst
列があります。結合は、グラフを探索する際に使用できます。たとえば、外側のエッジが到達したすべての頂点IDを見つけます。SELECT gods_edges.dst FROM gods_vertices JOIN gods_edges ON gods_vertices.id = gods_edges.src;
次のタスク
spark.sql()
を使用するSparkシェルと同じ手順が働き、クエリー文を実行するか、JDBC/ODBCドライバーとSpark SQL Thriftサーバーを使用します。