26.13.14 CSVファイルからのPgxFrameのロード
CSVファイルから
PgxFrame
をロードするには、まずファイルを書き込む必要があるディレクトリ(グラフ・サーバー上)を指すディレクトリ・オブジェクトを定義して、対応するディレクトリへのアクセスを明示的に認可する必要があります。CREATE OR REPLACE DIRECTORY graph_files AS '/tmp';
GRANT READ, WRITE ON DIRECTORY graph_files TO GRAPH_DEVELOPER;
また、次の点にも注意してください。
CREATE DIRECTORY
文のディレクトリは、グラフ・サーバー(PGX)に存在する必要があります。- このディレクトリは、グラフ・サーバー(PGX)によってOSレベルで読取り可能である必要があります。
前述のコードでは、ディレクトリに対する権限をGRAPH_DEVELOPER
ロールに付与します。ただし、個々のユーザーに権限を付与することもできます。
GRANT READ ON DIRECTORY graph_files TO <graph_user>;
その後、次の例に示すように、CSVファイルからPgxFrame
をロードできます:
opg4j> import oracle.pgx.api.frames.schema.datatypes.*
opg4j> import static oracle.pgx.api.frames.schema.ColumnDescriptor.columnDescriptor
opg4j> var exampleFrame = session.readFrame().csv().
...> name("transfersFrame").
...> columns(
...> columnDescriptor("from_acct_id", DataTypes.INTEGER_TYPE),
...> columnDescriptor("to_acct_id", DataTypes.INTEGER_TYPE),
...> columnDescriptor("amount", DataTypes.FLOAT_TYPE),
...> columnDescriptor("description", DataTypes.STRING_TYPE)
...> ).
...> load("/tmp/Transfers.csv")
import oracle.pgx.api.frames.schema.datatypes.*;
import static oracle.pgx.api.frames.schema.ColumnDescriptor.columnDescriptor;
PgxFrame exampleFrame = session.readFrame().csv().
name("transfersFrame").
columns(
columnDescriptor("from_acct_id", DataTypes.INTEGER_TYPE),
columnDescriptor("to_acct_id", DataTypes.INTEGER_TYPE),
columnDescriptor("amount", DataTypes.FLOAT_TYPE),
columnDescriptor("description", DataTypes.STRING_TYPE)
).
load("/tmp/Transfers.csv");
>>> example_frame = session.read_frame(). \
... csv(). \
... name('transfers_frame'). \
... columns([('from_acct_id', 'INTEGER_TYPE'),
... ('to_acct_id', 'INTEGER_TYPE'),
... ('amount', 'FLOAT_TYPE'),
... ('description', 'STRING_TYPE')]). \
... load('/tmp/Transfers.csv')
親トピック: PgxFrameの表形式データ構造