spark-env.cmd which is located in conf is not loaded by load-spark-env.cmd.
How to reproduce:
1) download spark 3.0.0 without hadoop and extract it
2) put a file conf/spark-env.cmd with the following contents (paths are relative to where my hadoop is - in C:\opt\hadoop\hadoop-3.2.1, you may need to change):
3) go to the bin directory and run pyspark. You will get an error that log4j can't be found, etc. (reason: the environment was not loaded indeed, it doesn't see where hadoop with all its jars is).
How to fix:
just take the load-spark-env.cmd from Spark version 2.4.3, and everything will work.
[UPDATE]: I attached a fixed version of load-spark-env.cmd that works fine.
What is the difference?
I am not a good specialist in Windows batch, but doing a function
if exist "%SPARK_CONF_DIR%\spark-env.cmd" (
and then calling it (as it was in 2.4.3) helps.