cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Data Intelligence - R Client Operator - issue in adding R package to the R code

Dokon
Advisor
Advisor
0 Kudos

We are facing issue with R Client Operator where we need to add R packages to our R code.

We are trying to follow:

https://blogs.sap.com/2018/12/10/sap-data-hub-and-r-time-series-forecasting/

Details:

We have created the following pipeline:

We have created a dockerfile file in the repository:

We have added a tags:rforecast in the configuration. We are able to build the same as well.

To import r packages to the R code we have created group on the R Client Operator and added the above created tags. When we are trying to import rforecast and run pipeline we are getting the following error:

Error:

failed to prepare graph description: failed to select image: No matching image found for group group1 with runtime tags: map[opensuse: rforecast: rjsonlite: rmsgpack: rserve:] Alternatives are: {com.sap.opensuse.dq map[deprecated: opensuse: vflow_dh_dq:2.7.19]} {com.sap.python36 map[debian: opensuse: pandas: python36: scikit-learn: tornado:5.0.2]} {com.sap.sles.ml.functional-services map[python27: python36: requests:2.18.4 sles: tornado:5.0.2]} {com.sap.opensuse.streaming map[deprecated: opensuse: python27: python36: sapjvm: streaming_lite: tornado:5.0.2]} {com.sap.sles.golang map[python27: python36: sapgolang:1.12.1-bin sles: tornado:5.0.2]} {com.sap.opensuse.base map[deprecated: opensuse: python27: python36: tornado:5.0.2]} {com.sap.opensuse.flowagent-codegen map[deprecated: flowagent-codegen:2.7.84 hadoop:2.9.0 opensuse: python36: spark:2.4.0 tornado:5.0.2]} {com.sap.opensuse.ml.python map[automated-analytics:3.2.0.9 deprecated: grpcio:1.8.6 minio:3.0.3 ml-python: numpy:1.13.1 oauthlib:2.0.4 opencv:3.4.2 opensuse: pillow:5.0.0 pykalman: python27: python36: requests:2.18.4 requests-oauthlib:0.8.0 scipy:1.0.1 tensorflow:1.7.0 tensorflow-serving-api:1.4.0 textblob:0.12.0 tornado:5.0.2 tweepy:3.7.0]} {com.sap.opensuse.ml.rbase map[opensuse: python36: r:3.5.0 rjsonlite: rmsgpack: rserve: sles: tornado:5.0.2 tree:]} {com.sap.sles.dq map[sles: vflow_dh_dq:2.7.19]} {teched.dat649.zzforecast map[zzforecast:]} {com.sap.sles.base map[default: python27: python36: sles: tornado:5.0.2]} {com.sap.opensuse.golang.zypper map[deprecated: opensuse: python27: python36: sapgolang:1.12.1-bin tornado:5.0.2 zypper:]} {com.sap.opensuse.python36 map[deprecated: opensuse: python27: python36: tornado:5.0.2]} {com.sap.ml.functional-services map[deprecated: opensuse: python27: python36: requests:2.18.4 sles: tornado:5.0.2]} {com.sap.opensuse.flowagent-operator map[deprecated: flowagent:2.7.84 opensuse:]} {com.sap.opensuse.textanalysis map[deprecated: opensuse: python27: python36: tornado:5.0.2 vflow_textanalysis:]} {com.sap.sles.flowagent-operator map[flowagent:2.7.84 sles:]} {com.sap.sles.sapjvm map[python27: python36: sapjvm: sles: tornado:5.0.2]} {demo.Docker_R_Forecast map[rforecast: rjsonlite: rserve:]} {teched.dat649.marathon map[opensuse: python36: r:3.5.0 rjsonlite: rmsgpack: rserve: sles: tornado:5.0.2 tree: zforecast:]} {com.sap.opensuse.node map[deprecated: node: opensuse: python27: python36: tornado:5.0.2]} {com.sap.sles.flowagent-codegen map[flowagent-codegen:2.7.84 hadoop:2.9.0 python36: sles: spark:2.4.0 tornado:5.0.2]} {com.sap.sles.ml.python map[automated-analytics:3.2.0.9 grpcio:1.8.6 minio:3.0.3 ml-python: numpy:1.13.1 oauthlib:2.0.4 opencv:3.4.2 pillow:5.0.0 pykalman: python27: python36: requests:2.18.4 requests-oauthlib:0.8.0 scipy:1.0.1 sles: tensorflow:1.7.0 tensorflow-serving-api:1.4.0 textblob:0.12.0 tornado:5.0.2 tweepy:3.7.0]} {com.sap.sles.hana_replication map[hanareplication:0.0.101 python27: python36: sapjvm: sles: tornado:5.0.2]} {com.sap.sles.streaming map[python27: python36: sapjvm: sles: streaming_lite: tornado:5.0.2]} {com.sap.sles.textanalysis map[python27: python36: sles: tornado:5.0.2 vflow_textanalysis:]} {com.sap.dh.workflow map[dh-app-base:2.7.160 node:vflow-sub-node]} {com.sap.ml.dsp map[aiohttp:3.5.4 backoff:1.8.0 deprecated: hdfs:2.5.0 opensuse: python27: python36: requests:2.18.4 tornado:5.0.2 uvloop:0.12.2]} {com.sap.opensuse.golang map[deprecated: opensuse: python27: python36: sapgolang:1.12.1-bin tornado:5.0.2]} {com.sap.opensuse.hana_replication map[deprecated: hanareplication:0.0.101 opensuse: python27: sapjvm: tornado:5.0.2]} {com.sap.opensuse.sapjvm map[deprecated: opensuse: python27: python36: sapjvm: tornado:5.0.2]} {com.sap.scenariotemplates.customdataprocessing.pandas map[pandas: python27: python36: sles: tornado:5.0.2]}

Please let us know how we can provide the proper dockerfile or tags so that we are able to rectify the issue.

Accepted Solutions (0)

Answers (1)

Answers (1)

AndreasForster
Product and Topic Expert
Product and Topic Expert

Hello Do-kon, The current version of Data Hub / Data Intelligence also requires the rmsgpack library.

This is the Docker file I am currently using for this scenario

FROM debian:9.4


RUN apt-get update \
	&& apt-get install -y --no-install-recommends \
		locales \
	&& rm -rf /var/lib/apt/lists/*


## Install R
## Set a default CRAN repo
RUN apt-get update \
	&& apt-get install -y --no-install-recommends \
		r-base \
		r-base-dev \
		r-recommended \
		libnlopt-dev \
		curl \
        && echo 'options(repos = c(CRAN = "https://cran.rstudio.com/"), download.file.method = "libcurl")' >> /etc/R/Rprofile.site \
	&& rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
	&& rm -rf /var/lib/apt/lists/*


## Install additional R packages
RUN apt-get update
RUN apt-get install libcurl4-openssl-dev


RUN echo 'options(repos="https://cran.rstudio.com/", download.file.method = "libcurl")' >> /etc/R/Rprofile.site \
    && Rscript  -e "install.packages(c('Rserve'), dependencies=TRUE)" \
    && Rscript  -e "install.packages(c('devtools'), dependencies=TRUE)" \
    && Rscript  -e "install.packages(c('jsonlite'), dependencies=TRUE)" \
    && Rscript  -e "install.packages(c('MLmetrics'), dependencies=TRUE)" \
    && Rscript  -e "install.packages(c('colorspace'), dependencies=TRUE)" \	
	&& Rscript  -e "install.packages(c('timeDate'), dependencies=TRUE)" \	
	&& Rscript  -e "install.packages(c('RcppArmadillo'), dependencies=TRUE)" \	
    && Rscript  -e "install.packages('https://cran.r-project.org/src/contrib/Archive/quadprog/quadprog_1.5-5.tar.gz', dependencies=TRUE, repos=NULL, method='libcurl')" \
	&& Rscript  -e "install.packages(c('tseries'), dependencies=TRUE)" \	
	&& Rscript  -e "install.packages(c('fracdiff'), dependencies=TRUE)" \		
    && Rscript  -e "install.packages(c('forecast'), dependencies=TRUE)" \
#    && Rscript  -e "install.packages('https://cran.r-project.org/src/contrib/Archive/forecast/forecast_7.3.tar.gz', dependencies=TRUE, repos=NULL, method='libcurl')" \
    && Rscript  -e "install.packages(c('lubridate'), dependencies=TRUE)"  \
    && Rscript  -e "install.packages('https://cran.r-project.org/src/contrib/Archive/msgpack/msgpack_1.0.tar.gz', repos=NULL, method='libcurl')"

And you also need to add the opensuse and rmsgpack tags. If I remember right the r / 3.3.3 tag in the screenshot is optional.

Many Greetings, Andreas

former_member727550
Discoverer
0 Kudos

Hello Andreas,

I am also facing the same kind of issue while using the docker on R client Operator

Thank you! this would help to resolve.