| @echo off |
| |
| rem |
| rem Licensed to the Apache Software Foundation (ASF) under one or more |
| rem contributor license agreements. See the NOTICE file distributed with |
| rem this work for additional information regarding copyright ownership. |
| rem The ASF licenses this file to You under the Apache License, Version 2.0 |
| rem (the "License"); you may not use this file except in compliance with |
| rem the License. You may obtain a copy of the License at |
| rem |
| rem http://www.apache.org/licenses/LICENSE-2.0 |
| rem |
| rem Unless required by applicable law or agreed to in writing, software |
| rem distributed under the License is distributed on an "AS IS" BASIS, |
| rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| rem See the License for the specific language governing permissions and |
| rem limitations under the License. |
| rem |
| |
| rem Path to Python script finding SPARK_HOME |
| set FIND_SPARK_HOME_PYTHON_SCRIPT=%~dp0find_spark_home.py |
| |
| rem Default to standard python3 interpreter unless told otherwise |
| set PYTHON_RUNNER=python3 |
| rem If PYSPARK_DRIVER_PYTHON is set, it overwrites the python version |
| if not "x%PYSPARK_DRIVER_PYTHON%"=="x" ( |
| set PYTHON_RUNNER=%PYSPARK_DRIVER_PYTHON% |
| ) |
| rem If PYSPARK_PYTHON is set, it overwrites the python version |
| if not "x%PYSPARK_PYTHON%"=="x" ( |
| set PYTHON_RUNNER=%PYSPARK_PYTHON% |
| ) |
| |
| rem If there is python installed, trying to use the root dir as SPARK_HOME |
| where %PYTHON_RUNNER% > nul 2>&1 |
| if %ERRORLEVEL% neq 0 ( |
| if not exist %PYTHON_RUNNER% ( |
| if "x%SPARK_HOME%"=="x" ( |
| echo Missing Python executable '%PYTHON_RUNNER%', defaulting to '%~dp0..' for SPARK_HOME ^ |
| environment variable. Please install Python or specify the correct Python executable in ^ |
| PYSPARK_DRIVER_PYTHON or PYSPARK_PYTHON environment variable to detect SPARK_HOME safely. |
| set SPARK_HOME=%~dp0.. |
| ) |
| ) |
| ) |
| |
| rem Only attempt to find SPARK_HOME if it is not set. |
| if "x%SPARK_HOME%"=="x" ( |
| if not exist "%FIND_SPARK_HOME_PYTHON_SCRIPT%" ( |
| rem If we are not in the same directory as find_spark_home.py we are not pip installed so we don't |
| rem need to search the different Python directories for a Spark installation. |
| rem Note only that, if the user has pip installed PySpark but is directly calling pyspark-shell or |
| rem spark-submit in another directory we want to use that version of PySpark rather than the |
| rem pip installed version of PySpark. |
| set SPARK_HOME=%~dp0.. |
| ) else ( |
| rem We are pip installed, use the Python script to resolve a reasonable SPARK_HOME |
| for /f "delims=" %%i in ('%PYTHON_RUNNER% "%FIND_SPARK_HOME_PYTHON_SCRIPT%"') do set SPARK_HOME=%%i |
| ) |
| ) |