- プロパティ・グラフのグラフ開発者ガイド
- グラフ・サーバー(PGX)上級ユーザー・ガイド
- PGXプログラミング・ガイド
- PgxFrameの表形式データ構造
- クライアント側データからのPgxFrameのロード
26.13.15 クライアント側データからのPgxFrameのロード
クライアント側データから
PgxFrame
を直接ロードすることもできます。
クライアント側データからPgxFrame
をロードするステップを次に示します。
- 次のようにセッションとアナリストを作成します。
コードの例は、データベースからのPgxFrameのロードのステップ1を参照してください。
- クライアント側データから
PgxFrame
をロードするためのフレーム・スキーマを定義します。たとえば、様々なデータ型で定義されたフレーム・スキーマを次に示します。opg4j> var exampleFrameSchema = List.of( columnDescriptor("name", DataTypes.STRING_TYPE), columnDescriptor("age", DataTypes.INTEGER_TYPE), columnDescriptor("salary", DataTypes.DOUBLE_TYPE), columnDescriptor("married", DataTypes.BOOLEAN_TYPE), columnDescriptor("tax_rate", DataTypes.FLOAT_TYPE), columnDescriptor("random", DataTypes.LONG_TYPE), columnDescriptor("date_of_birth", DataTypes.LOCAL_DATE_TYPE) )
List<ColumnDescriptor> exampleFrameSchema = Arrays.asList( columnDescriptor("name", DataTypes.STRING_TYPE), columnDescriptor("age", DataTypes.INTEGER_TYPE), columnDescriptor("salary", DataTypes.DOUBLE_TYPE), columnDescriptor("married", DataTypes.BOOLEAN_TYPE), columnDescriptor("tax_rate", DataTypes.FLOAT_TYPE), columnDescriptor("random", DataTypes.LONG_TYPE), columnDescriptor("date_of_birth", DataTypes.LOCAL_DATE_TYPE) );
example_frame_schema = [ ("name", "STRING_TYPE"), ("age", "INTEGER_TYPE"), ("salary", "DOUBLE_TYPE"), ("married", "BOOLEAN_TYPE"), ("tax_rate", "FLOAT_TYPE"), ("random", "LONG_TYPE"), ("date_of_birth", "LOCAL_DATE_TYPE") ]
- スキーマに従ってデータを定義します。
opg4j> Map<String, Iterable<?>> exampleFrameData = Map.of( "name", Arrays.asList("Alice", "Bob", "Charlie"), "age", Arrays.asList(25, 27, 29), "salary", Arrays.asList(10000.0, 15000.0, 20000.0), "married", Arrays.asList(false, false, true), "tax_rate", Arrays.asList(0.21, 0.26, 0.32), "random", Arrays.asList(2394293898324L, 45640604960495L, 12312323409087654L), "date_of_birth", Arrays.asList( LocalDate.of(1990, 9, 15), LocalDate.of(1991, 11, 4), LocalDate.of(1993, 10, 4) ) )
Map<String, Iterable<?>> exampleFrameData = new HashMap<>(); exampleFrameData.put("name", Arrays.asList("Alice", "Bob", "Charlie")); exampleFrameData.put("age", Arrays.asList(25, 27, 29)); exampleFrameData.put("salary", Arrays.asList(10000.0, 15000.0, 20000.0)); exampleFrameData.put("married", Arrays.asList(false, false, true)); exampleFrameData.put("tax_rate", Arrays.asList(0.21, 0.26, 0.32)); exampleFrameData.put("random", Arrays.asList(2394293898324L, 45640604960495L, 12312323409087654L)); exampleFrameData.put("date_of_birth", Arrays.asList(LocalDate.of(1990, 9, 15), LocalDate.of(1991, 11, 4), LocalDate.of(1993, 10, 4) ) );
from datetime import date example_frame_data = { "name": ["Alice", "Bob", "Charlie"], "age": [25, 27, 29], "salary": [10000.0, 15000.0, 20000.0], "married": [False, False, True], "tax_rate": [0.21, 0.26, 0.32], "random": [2394293898324, 45640604960495, 12312323409087654], "date_of_birth": [date(1990, 9, 15), date(1991, 11, 4), date(1993, 10, 4)] }
- 次のように、フレームをロードします。
opg4j> var exampleFrame = session.createFrame(exampleFrameSchema, exampleFrameData, "example frame")
PgxFrame exampleFrame = session.createFrame(exampleFrameSchema, exampleFrameData, "example frame");
example_frame=session.create_frame(example_frame_schema,example_frame_data,'example frame')
- 受け取るデータが増えた場合は、フレームを増分的にロードすることもできます。
opg4j> var exampleFrameBuilder = session.createFrameBuilder(exampleFrameSchema); opg4j> exampleFrameBuilder.addRows(exampleFrameData) opg4j> Map<String, Iterable<?>> exampleFrameDataPart2 = Map.of( "name", Arrays.asList("Dave"), "age", Arrays.asList(26), "salary", Arrays.asList(18000.0), "married", Arrays.asList(true), "tax_rate", Arrays.asList(0.30), "random", Arrays.asList(456783423423L), "date_of_birth", Arrays.asList(LocalDate.of(1989, 9, 15)) ) opg4j> exampleFrameBuilder.addRows(exampleFrameDataPart2) opg4j> var exampleFrame = exampleFrameBuilder.build("example frame")
PgxFrameBuilder exampleFrameBuilder = session.createFrameBuilder(exampleFrameSchema); exampleFrameBuilder.addRows(exampleFrameData); Map<String, Iterable<?>> exampleFrameDataPart2 = new HashMap<>(); exampleFrameDataPart2.put("name", Arrays.asList("Dave")); exampleFrameDataPart2.put("age", Arrays.asList(26)); exampleFrameDataPart2.put("salary", Arrays.asList(18000.0)); exampleFrameDataPart2.put("married", Arrays.asList(true)); exampleFrameDataPart2.put("tax_rate", Arrays.asList(0.30)); exampleFrameDataPart2.put("random", Arrays.asList(456783423423L)); exampleFrameDataPart2.put("date_of_birth", Arrays.asList(LocalDate.of(1989, 9, 15)) ); exampleFrameBuilder.addRows(exampleFrameDataPart2); PgxFrame exampleFrame = exampleFrameBuilder.build("example frame");
example_frame_builder = session.create_frame_builder(example_frame_schema) example_frame_builder.add_rows(example_frame_data) example_frame_data_part_2 = { "name": ["Dave"], "age": [26], "salary": [18000.0], "married": [True], "tax_rate": [0.30], "random": [456783423423], "date_of_birth": [date(1989, 9, 15)] } example_frame_builder.add_rows(example_frame_data_part_2) example_frame = example_frame_builder.build("example frame")
- 最後に、次のように、PythonのPandasデータフレームからフレームをロードすることもできます。
import pandas as pd example_pandas_dataframe = pd.DataFrame(data=example_frame_data) example_frame = session.pandas_to_pgx_frame(example_pandas_dataframe, "example frame")
PgxFrame
からグラフを作成することもできます。詳細は、複数のPgxFrameオブジェクトからのグラフの作成を参照してください。
親トピック: PgxFrameの表形式データ構造