I would like to know if there's an option to write an rds file to foundry file system from code repository. I know it's possible from code workbook but I couldn't find a way applying the approach in code repository.
In this example, I'm storing the lower_case object as foundry data table but I would rather store it as .rds file.
from transforms.api import transform, Output
@transform(
output=Output("/Global/Foundry Training/Examples/PySpark & Python Transforms/Transforms Execute R Code/lower")
)
def my_compute_function(ctx, output):
from rpy2.robjects.packages import importr
from rpy2.robjects import pandas2ri
from rpy2.robjects.conversion import localconverter
import rpy2.robjects as ro
base = importr('base')
# Calling functions example
lower_case = base.tolower("LOWER")[0]
** #What I need to to to write lower_case object as RDS file to foundry file system
**
output.write_dataframe(ctx.spark_session.createDataFrame([[lower_case]], 'lower:string'))
Thanks!
Thanks for your help. This is the adjusted code to write an RDS object to foundry filesystem using rpy2:
from transforms.api import transform, Output
@transform(
output=Output("/Global/Foundry Training/Examples/PySpark & Python Transforms/Transforms Execute R Code/lower.rds")
)
def my_compute_function(ctx, output):
from rpy2.robjects.packages import importr
import rpy2.robjects as ro
base = importr('base')
saveRDS = ro.r["saveRDS"]
lower_case = base.tolower("LOWER")[0]
with output.filesystem().open('lower.rds', 'wb') as f:
saveRDS(lower_case, f.name)