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サーバーを使用します。