Posted at

casTableオブジェクトをコピーして検索条件を変更する

SAS ViyaはAIプラットフォームになります。Webブラウザ上で機械学習の設計、実行ができるStudioという環境も用意されていますが、開発者はプログラミングコードで開発することも可能です。プログラミング言語はJava/Python/R/SASが選べます。

機械学習を用いる際に専用のテーブル(casTable)を用いますが、今回はそのテーブルオブジェクト(Python版)をコピーして様々な条件を指定する方法を紹介します。


partitionメソッドを使う

すでに設定を行ったcasTableに対してpartitionメソッドを使うとテーブルがコピーされます。

sub = iris.partition()

このsubの内容を見ると、テンポラリテーブルなのが分かります。tableNameが自動生成されたものになっています。

§ caslib

CASUSER(dev@sas.com)
§ tableName
_T_WIVDGHGP_R6K2BW26_TFCRZAPN74
§ rowsTransferred
0
§ shuffleWaitTime
0.0
§ minShuffleWaitTime
1e+300
§ maxShuffleWaitTime
0.0
§ averageShuffleWaitTime
0.0
§ casTable
CASTable('_T_WIVDGHGP_R6K2BW26_TFCRZAPN74', caslib='CASUSER(dev@sas.com)')


データの取りだし方

後は sub.casTable でデータが取得できます。

sub.casTable.fetch(to=3)

SepalLength
SepalWidth
PetalLength
PetalWidth
Name
length_factor

0
5.1
3.5
1.4
0.2
Iris-setosa

1
4.9
3.0
1.4
0.2
Iris-setosa

2
4.7
3.2
1.3
0.2
Iris-setosa

このオブジェクトに条件を設定しても、元のテーブルオブジェクトには影響しません。

iris.set_params('where', 'Name = "Iris-versicolor"')

sub.casTable.has_params('where')
-> False


プログラムをしていて、同じ条件を使い回したいというケースはよくあると思います。partitionを使うことで、元のテーブルには影響を与えずに条件を変更したり、データの確認を行えるようになります。