summary refs log tree commit diff
path: root/pkgs/development/r-modules/default.nix
diff options
context:
space:
mode:
authornviets <nathan.viets@gmail.com>2023-03-03 18:31:19 -0600
committerNathan Viets <nathan.g.viets@gmail.com>2023-03-06 12:03:04 +0100
commit62821edd2e685be68ece5dd50af4b493a4fa9dba (patch)
tree181bc4c62ee31a1e7db02bbd6e8fbfb25b9be1d6 /pkgs/development/r-modules/default.nix
parent71d6662977b8ded8c6fdfc66961a8dfb8443e06a (diff)
downloadnixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar.gz
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar.bz2
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar.lz
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar.xz
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.tar.zst
nixpkgs-62821edd2e685be68ece5dd50af4b493a4fa9dba.zip
This PR sets default SPARK_HOME and JAVA_HOME for R's sparklyr package using a patch in .onload. Preset value take precedence. SPARK_HOME points to python3Packages.pyspark rather than pkgs.spark because the former is actively maintained.
Diffstat (limited to 'pkgs/development/r-modules/default.nix')
-rw-r--r--pkgs/development/r-modules/default.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 7cfb8e54f27..82cc0955a4f 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1275,6 +1275,17 @@ let
       '';
     });
 
+    sparklyr = old.sparklyr.overrideAttrs (attrs: {
+      # Pyspark's spark is full featured and better maintained than pkgs.spark
+      preConfigure = ''
+        substituteInPlace R/zzz.R \
+          --replace ".onLoad <- function(...) {" \
+            ".onLoad <- function(...) {
+          Sys.setenv(\"SPARK_HOME\" = Sys.getenv(\"SPARK_HOME\", unset = \"${pkgs.python3Packages.pyspark}/lib/${pkgs.python3Packages.python.libPrefix}/site-packages/pyspark\"))
+          Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.openjdk}\"))"
+      '';
+    });
+
     proj4 = old.proj4.overrideAttrs (attrs: {
       preConfigure = ''
         substituteInPlace configure \