Hey Madalin,
Unfortunately, there's no simple way to access a table in a non-CAS library through swat. This is because swat only communicates with the CAS server, rather than the SAS Compute Service where SAS libraries are defined and SAS code is processed. CAS doesn't know anything about the libraries in SAS, and so unfortunately swat doesn't either.
Luckily, there are a couple of alternatives and workarounds!
Define a caslib that points to the same place — if the data source that your SAS library points to is accessible from the CAS server (for example a shared drive, or a database that you have credentials for), you can connect directly to it from CAS, rather than having to move the data through the SAS client.
Create a SAS Job — if you anticipate this being a script you'll have to run regularly, you can create a job in SAS Studio that includes the SAS code you posted above. Creating a job will generate a url that you can submit HTTP requests to in order to kick off a predefined SAS program. You could also take advantage of url parameters for your SAS Job to modify the table and/or library on each HTTP call.
Use SASPy — while the swat package for python can only communicate with the CAS Server, there is a different package available for communicating with a SAS process! SASPy offers a similar kind of interface to SAS from Python that swat does to CAS. The process for configuring a connection to your SAS server with SASPy is a little bit different from swat, and you can find the details here. Once you've defined your connection, you can use the
SASPy.SASsession.sd2df('table', 'non_cas_libref')
method to download the data into python, and upload it to CAS with swat. You can also use the
SASPy.SASsession.submit('code')
method to directly submit SAS code, like the snippet you posted above, to be executed.
... View more