MLプロジェクトでデータを操作するには、まずデータをロードする必要があります。データは、CSVファイル、XLSファイル、データベース、データセット、一時テーブルからロードできます。 BellaDati ML Studioで、行ごとまたはストリームとしてデータを読み取る方法は2つあります。
行ごとの読み取り
行ごとにデータを読み取る場合、サイクルの内容(クロージャー)がファイルの各行に対して実行されます。行(サイクル)ごとに、これらの変数が設定されます:
- row
- values[n] - 現在の行のn番目の列の値を返します。
- columns[n] - n番目の列の名前(ヘッダー)を返します。
- index - 行の番号を返します。
CSVファイルからの読み取り
readCSVFile()関数は、CSVファイルからデータをロードするために使用されています。関数は次のように定義されます:
readCSVFile(String file, String separator, String escape, int limit, Closure<Object> closure)
パラメーター
パラメーター「file」「separator」は必須で、パラメーター「escape」「limit」「closure」は任意です。
- file - 読み込むファイルの名前を定義します。このファイルをプロジェクトにアップロードする必要があります。
- separator - 値間の区切り文字(カンマ、セミコロンなど)を定義します。
- escape - テキストのエスケープに使用される文字を定義します。
- limit - ロードされる行の制限を定義します。
- closure - クロージャーは、ファイルの各行に対して実行されるコードのブロックです。クロージャーはパラメーターとして、または関数の本体として中括弧で記述する必要があります。従って、パラメーターとしてオプションですが、一般的に必須です。詳細については、Groovy closuresを参照してください。
使用例
def rows = 0 readCSVFile('file.csv', ',', '', 10) { rows++ println index println values[1] } println rows
このコードは、ファイルの最初の10行の行インデックスと2列目の値をコンソールに出力します。ループの終了後、反復の総数(この場合は10)が表示されます。
XLSファイルからの読み取り
readXLSFile()関数は、XLSファイルからデータをロードするために使用されます。関数は次のように定義されます:
readXLSFile(String file, int limit, Closure<Object> closure)
パラメーター
パラメーター「file 」は必須で、パラメーター「limit」「closure 」は任意です。
- file - 読み込むファイルの名前を定義します。このファイルをプロジェクトにアップロードする必要があります。
- limit - ロードされる行の制限を定義します。
- closure - クロージャーは、ファイルの各行に対して実行されるコードのブロックです。クロージャーは、パラメーターとして、または関数の本体として中括弧で記述する必要があります。従って、パラメータとしてオプションですが、一般的に必須です。詳細については、Groovyクロージャーを参照してください。
使用例
def rows = 0 readXLSFile('samplexls.xls', 5){ rows++ println index println values[1] } println rows
このコードは、ファイルの最初の5行の行インデックスと2列目の値をコンソールに出力します。ループの終了後、反復の総数(この場合は5)が表示されます。
SQLデータベースからの読み取り
readSQL関数は、SQLデータベースからデータをロードするために使用されます。この関数は、以前にBellaDatiで定義されたSQL接続を使用します。詳細については、データソースを参照してください。
関数は次のように定義されます:
readSQL(Long id, String sql, int limit, Closure<Object> closure)
パラメーター
パラメーター「id」「sql」は必須で、パラメーター「limit」「closure」は任意です。
- id - データソースのIDを定義します。コードビルダーで設定できます。
- sql - SQLクエリーを定義します。
- limit - ロードされる行の制限を定義します。
- closure - クロージャーは、ファイルの各行に対して実行されるコードのブロックです。クロージャーは、パラメーターとして、または関数の本体として中括弧で記述する必要があります。従って、パラメーターとしてオプションですが、一般的に必須です。詳細については、Groovyクロージャーを参照してください。
使用例
readSQL(1, 'select * from customers', 10) { println values[0] rows++ println columns[0] } println rows
このコードは、ID 1のデータベース接続を使用し、顧客テーブルから10行のすべての列をロードします。
データセットからの読み取り
readDataset()関数は、データセットからデータをロードするために使用されます。関数は次のように定義されます:
readDataset(Integer id, int limit, Closure<Object> closure)
パラメーター
パラメーター「id」は必須で、パラメーター「limit」「closure」は任意です。
- id - データセットのIDを定義します。コードビルダーで設定するか、データセットのURLで見つけることができます。
- limit - ロードされる行の制限を定義します。
- closure - クロージャーは、ファイルの各行に対して実行されるコードのブロックです。クロージャーは、パラメーターとして、または関数の本体として中括弧で記述する必要があります。したがって、パラメーターとしてオプションですが、一般的に必須です。詳細については、Groovyクロージャーを参照してください。
使用例
readDataset(10,5) { println values[0] println columns[0] }
このコードは、ID 10のデータセットを使用し、5行の最初の列の名前と値をロードします。
テーブルからの読み取り
table()関数は、プロジェクトに以前に保存された一時テーブルからデータをロードするために使用できます。このテーブルは、現在のセッションでのみ使用できます。関数は次のように定義されます:
table(String id, Closure<Object> closure)
パラメーター
パラメーター「id」は必須で、パラメーター「closure」は任意です。
- id - テーブルのid(名前)を定義します。テーブルの作成時に設定されます。
- closure - クロージャーは、ファイルの各行に対して実行されるコードのブロックです。クロージャーは、パラメーターとして、または関数の本体として中括弧で記述する必要があります。したがって、パラメーターとしてオプションですが、一般的に必須です。詳細については、Groovyクロージャーを参照してください。
使用例
table('table') { println values[0] }
このコードは、テーブルの各行の最初の列の値をコンソールに出力します。
ストリームとして読み込む
データをストリームとして読み取る場合、行は繰り返されず、入力ストリームとして一度にすべて送信されます。ほとんどの場合、行ごとの読み取りを使用することをお勧めします。一部のPythonスクリプトなど、必要な場合にのみストリームを使用することをお勧めします。
CSVファイルからのストリーミング
streamCSVFile()関数は、CSVファイルからデータをストリーミングするために使用されます。関数は次のように定義されます:
streamCSVFile(String file, String separator, String escape, int limit)
パラメーター
パラメーター「file」「separator 」は必須で、パラメーター「escape」「limit 」は任意です。
- file - 読み込むファイルの名前を定義します。このファイルをプロジェクトにアップロードする必要があります。
- separator - 値間の区切り文字(カンマ、セミコロンなど)を定義します。
- escape - テキストのエスケープに使用される文字を定義します。
- limit - ロードされる行の制限を定義します。
使用例
println org.apache.commons.io.IOUtils.toString(streamCSVFile('train_v2.csv',','))
このコードは、ファイルのすべての値をコンマで区切って出力します。
XLSファイルからのストリーミング
streamXLSFile()関数は、XLSファイルからデータをストリーミングするために使用されます。関数は次のように定義されます:
streamXLSFile(String file, int limit)
パラメーター
パラメーター「file」は必須で、パラメーター「limit」は任意です。
- file - 読み込むファイルの名前を定義します。このファイルをプロジェクトにアップロードする必要があります。
- limit - ロードされる行の制限を定義します。
使用例
println org.apache.commons.io.IOUtils.toString(streamXLSFile('samplexls.xls',5))
このコードは、ファイルの最初の5行を、値をコンマで区切って出力します。
SQLデータベースからのストリーミング
streamXLSFile()関数は、XLSファイルからデータをストリーミングするために使用されます。関数は次のように定義されます:
streamSQL(Long id, String sql, int limit)
パラメーター
パラメーター「id 」は必須です。
- id - データセットのIDを定義します。コードビルダーで設定するか、データセットのURLで見つけることができます。
使用例
println org.apache.commons.io.IOUtils.toString(streamSQL(1, 'select * from table',5))
このコードは、テーブルの最初の5行を、値をコンマで区切って出力します。
データセットからのストリーミング
streamDataset()関数は、データセットからデータをストリーミングするために使用されます。関数は次のように定義されます:
streamDataset(Integer id)
パラメーター
パラメーター「id」は必須です。
- id - データソースのIDを定義します。コードビルダーで設定できます。
使用例
println org.apache.commons.io.IOUtils.toString(streamDataset(1))
このコードは、データセットのすべての行を印刷します。
テーブルからのストリーミング
streamTable()関数は、以前にプロジェクトに保存された一時テーブルからデータをストリーミングするために使用できます。このテーブルは、現在のセッションでのみ使用できます。関数は次のように定義されます:
streamTable(Integer id)
パラメーター
パラメーター「id」は必須です。
- id - テーブルのid(名前)を定義します。テーブルの作成時に設定されます。
使用例
println org.apache.commons.io.IOUtils.toString(streamTable('table'))
このコードは、テーブルのすべての行を印刷します。