Java (PGX)インタプリタ
Java (PGX)パラグラフは、%java-pgx
から始まり、(JDK 11に基づく)全Java言語および使用可能なすべてのJava (PGX) APIを公開します。
Java APIの詳細は、Javadocを参照してください。
ヒント:
ノートブックの段落の下部にカーソルを置き、
一部の変数は、PGXとの相互作用を容易にするために組み込まれています:
-
session
: ユーザーにバインドされているPgxSession
オブジェクト。 現在メモリーにロードされているすべてのグラフには、session
オブジェクトを介してアクセスできます。 セッションは、使用されていない時間が経過するとタイムアウトになることに注意してください。 ノートブックに再度ログインすると、新しいセッションが作成されます。そのため、基礎となるセッションIDが常に同じとはかぎりません。 -
instance
: PGXサーバーを指すServerInstance
。 -
visualQuery
: PGQL問合せを可視化可能な出力に変換するためのヘルパー・オブジェクト。
次のインポートは、すべてのJava (PGX)段落で使用できます:
import java.io.*
import java.util.concurrent.TimeUnit
import org.apache.commons.io.*
import oracle.pgx.common.*
import oracle.pgx.common.mutations.*
import oracle.pgx.common.types.*
import oracle.pgx.api.*
import oracle.pgx.api.admin.*
import oracle.pgx.config.*
import oracle.pg.rdbms.pgql.*
import oracle.pg.rdbms.pgql.pgview.*
import oracle.pgx.api.filter.*
import oracle.pgx.api.PgxGraph.SortOrder
import oracle.pgx.api.PgxGraph.Degree
import oracle.pgx.api.PgxGraph.Mode
import oracle.pgx.api.PgxGraph.SelfEdges
import oracle.pgx.api.PgxGraph.MultiEdges
import oracle.pgx.api.PgxGraph.TrivialVertices
次に、Java (PGX)パラグラフの例を示します:
%java-pgx
var g = session.getGraph("MY_FIRST_GRAPH") // reference in-memory graphs by name
session.createAnalyst().pagerank(g) // run algorithms
段落内に新しいヘルパー・クラス/関数を定義することもできます。 たとえば:
%java-pgx
import java.lang.Math // import
// can define new classes
public class Functions {
public static double haversine(double lat1, double lon1, double lat2, double lon2) {
double delta_lon = (lon2 - lon1) * Math.PI / 180;
double delta_lat = (lat2 - lat1) * Math.PI / 180;
double a = Math.pow(Math.sin(delta_lat / 2 ), 2) + Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) * Math.pow(Math.sin(delta_lon / 2), 2);
double c = 2 * Math.asin(Math.sqrt(a));
double r = 6371; // Radius of the Earth in kilometers. Use 3956 for miles
return c * r;
}
}
Functions.haversine(30.26, 97.74, 48.13, 11.58)
内部的には、Java (PGX)インタプリタは、Python (PGX)インタプリタと同じPGXセッションで動作します。 そのため、Python (PGX)段落で計算された分析結果は、後続のJava (PGX)段落で問い合せることができます。
次の例は、Python (PGX)パラグラフで計算されたPageRank値を示しています。 その後、グラフのpagerank
プロパティは、後続のJava (PGX)段落で問い合せられます。
%python-pgx
g = session.get_graph("MY_FIRST_GRAPH")
analyst.pagerank(g,tol=0.001,damping=0.85,max_iter=100,norm=False,rank='pagerank')
%java-pgx
session.getGraph("MY_FIRST_GRAPH").queryPgql("SELECT x.pagerank FROM MATCH (x)").print(out,10,0)
Java (PGX)パラグラフの実行時に既知の問題について学習するには、「Graph Studioの既知の問題」を参照してください。