Spark SQLでDSE Graphの頂点とエッジのクエリーを行う

Spark SQLでは、DSE Graphの頂点およびエッジ・テーブルのクエリーを行うことができます。

Spark SQLでは、DSE Graphの頂点およびエッジ・テーブルのクエリーを行うことができます。dse_graphデータベースは、各グラフの頂点テーブルとエッジ・テーブルを保持します。テーブルの命名形式は、グラフ名_verticesグラフ名_edgesです。たとえば、godsという名前のグラフがある場合、dse_graph.gods_verticesテーブルおよびdse_graph.gods_edgesテーブルのSpark SQLで頂点とエッジにアクセスできます。
select * from dse_graph.gods_vertices;
スペルは同じでも、大文字と小文字で異なるプロパティがある場合は(idIdなど)、--conf spark.sql.caseSensitive=trueオプションを使用してSpark SQLを起動します。

始める前に

GraphとSparkの両方を有効にした状態で、クラスターを起動します。

手順

  1. Spark SQLシェルを起動します。
    dse spark-sql
  2. SELECT文を使用して、頂点とエッジのクエリーを行います。
    USE dse_graph;
    SELECT * FROM gods_vertices where name = 'Zeus';
  3. クエリー内の頂点とエッジを統合します。

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