biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / pyspark / default.nix
blob93078d91dad9109ac11e81a6aa8017cbbb1b36da
2   lib,
3   buildPythonPackage,
4   fetchPypi,
5   numpy,
6   pandas,
7   py4j,
8   pyarrow,
9   pythonOlder,
12 buildPythonPackage rec {
13   pname = "pyspark";
14   version = "3.5.1";
15   format = "setuptools";
17   disabled = pythonOlder "3.7";
19   src = fetchPypi {
20     inherit pname version;
21     hash = "sha256-3WVp5Uc2Xq3E+Ie/V/FT5NWCpoxLSQ3kddVbmYFmSRA=";
22   };
24   # pypandoc is broken with pandoc2, so we just lose docs.
25   postPatch = ''
26     sed -i "s/'pypandoc'//" setup.py
28     substituteInPlace setup.py \
29       --replace py4j== 'py4j>='
30   '';
32   postFixup = ''
33     # find_python_home.py has been wrapped as a shell script
34     substituteInPlace $out/bin/find-spark-home \
35         --replace 'export SPARK_HOME=$($PYSPARK_DRIVER_PYTHON "$FIND_SPARK_HOME_PYTHON_SCRIPT")' \
36                   'export SPARK_HOME=$("$FIND_SPARK_HOME_PYTHON_SCRIPT")'
37     # patch PYTHONPATH in pyspark so that it properly looks at SPARK_HOME
38     substituteInPlace $out/bin/pyspark \
39         --replace 'export PYTHONPATH="''${SPARK_HOME}/python/:$PYTHONPATH"' \
40                   'export PYTHONPATH="''${SPARK_HOME}/..:''${SPARK_HOME}/python/:$PYTHONPATH"'
41   '';
43   propagatedBuildInputs = [ py4j ];
45   optional-dependencies = {
46     ml = [ numpy ];
47     mllib = [ numpy ];
48     sql = [
49       numpy
50       pandas
51       pyarrow
52     ];
53   };
55   # Tests assume running spark instance
56   doCheck = false;
58   pythonImportsCheck = [ "pyspark" ];
60   meta = with lib; {
61     description = "Python bindings for Apache Spark";
62     homepage = "https://github.com/apache/spark/tree/master/python";
63     sourceProvenance = with sourceTypes; [
64       fromSource
65       binaryBytecode
66     ];
67     license = licenses.asl20;
68     maintainers = with maintainers; [ shlevy ];
69   };