How to call python script in SnapLogic

Hi Team,

I need to call below sample python script from snaplogic.
or is there a way to call .py file in snaplogic

import pandas as pd
################Can be snap logic pipeline###############333333
import pyodbc
conn = pyodbc.connect(‘DRIVER={ODBC Driver 13 for SQL Server};
SERVER=ps-sql; database=test; trusted_connection=yes’)
sql = ‘’’
select * from temp
‘’’
df = pd.read_sql(sql, conn)
######################################################33
#######################Feed SQL into python######################3

import pandas as pd
longform = pd.DataFrame(columns=[‘assets__c’, ‘id’])
for idx, songs, name in df.itertuples():
name_words = (i.lower() for i in name.split())
longform = longform.append(
[{‘assets__c’: nw, ‘id’: songs} for nw in name_words],
ignore_index=True
)
longform[‘refreshdate_unpack’] = pd.to_datetime(‘today’)

longform
##############Write longform into a sql table######################

any inputs?

Hi,

There are a couple of Snaps you can use:
https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1439321/Script
or
https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/615383126/Remote+Python+Script

Though the Remote Python Script takes a bit more doing to get it going.

BR,
Dimitri

4 Likes

How Can I get the The hostname of Remote Python Executor.

@sanam Hello again! I replied on your separate thread about the RPE hostname (Remote Python Snap Account - Designing Pipelines - SnapLogic Community). What I want to add to this thread is that if you need a third-party Python library the Remote Python Script snap is the way to go and the RPE images we maintain already have Pandas.

From a design perspective, is there a reason your thinking about making the SQL connection in Python rather than using the SQL Server snap pack for the read, then passing the data into the RPE snap for processing with Pandas?

Hi @rsramkoski

Even if he goes with RPE and Pandas, … then what about pyodbc? Is it supported in RPE?

If you check the py-libs:

Not only pyodbc, but all the other python connectors to the databases - how are they supported via RPE?

/Igor

1 Like

@igormicev We do not restrict which third-party Python libraries work in the RPE snap. Custom scripts like this though would be outside the scope of our Support team, meaning they need to be supported by the team that develops them. What is the driving factor to use pyodbc or another Python library to connect to SQL Server instead of the SQL Server snap pack or JDBC snap pack?

@rsramkoski, thanks for your reply, it answered my question.
I don’t know what’s the driving factor to use third-party libs instead of some of the snaps. I guess the OP would liked to make/try some data wrangling with DataFrame.

1 Like

Hi,

Thanks for the reply I have got RPS installed but I am not able to use external lib

import pyodbc
from pylab import title, figure, xlabel, ylabel, xticks, bar, legend, axis, savefig
from IPython.display import Math

Python script error: ModuleNotFoundError(“No module named ‘pylab’”,)
I need to conncet to SQL and read the data for further processing
what is required to use them in the remote python script?