Skip to content
Snippets Groups Projects
install-source-package.sh 1.96 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    #
    # Licensed to the Apache Software Foundation (ASF) under one or more
    # contributor license agreements.  See the NOTICE file distributed with
    # this work for additional information regarding copyright ownership.
    # The ASF licenses this file to You under the Apache License, Version 2.0
    # (the "License"); you may not use this file except in compliance with
    # the License.  You may obtain a copy of the License at
    #
    #    http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    
    # This scripts packages the SparkR source files (R and C files) and
    # creates a package that can be loaded in R. The package is by default installed to
    # $FWDIR/lib and the package can be loaded by using the following command in R:
    #
    #   library(SparkR, lib.loc="$FWDIR/lib")
    #
    # NOTE(shivaram): Right now we use $SPARK_HOME/R/lib to be the installation directory
    # to load the SparkR package on the worker nodes.
    
    set -o pipefail
    set -e
    
    
    FWDIR="$(cd "`dirname "${BASH_SOURCE[0]}"`"; pwd)"
    pushd "$FWDIR" > /dev/null
    . "$FWDIR/find-r.sh"
    
    
    if [ -z "$VERSION" ]; then
    
      VERSION=`grep Version "$FWDIR/pkg/DESCRIPTION" | awk '{print $NF}'`
    
    if [ ! -f "$FWDIR/SparkR_$VERSION.tar.gz" ]; then
      echo -e "R source package file '$FWDIR/SparkR_$VERSION.tar.gz' is not found."
    
      echo -e "Please build R source package with check-cran.sh"
      exit -1;
    fi
    
    echo "Removing lib path and installing from source package"
    LIB_DIR="$FWDIR/lib"
    
    rm -rf "$LIB_DIR"
    mkdir -p "$LIB_DIR"
    "$R_SCRIPT_PATH/R" CMD INSTALL "SparkR_$VERSION.tar.gz" --library="$LIB_DIR"
    
    
    # Zip the SparkR package so that it can be distributed to worker nodes on YARN
    
    jar cfM "$LIB_DIR/sparkr.zip" SparkR
    popd > /dev/null
    
    popd