Джефф Рихтер в CLR через C #:
«С версией 2.0 CLR максимальное число рабочих потоков по умолчанию 25 на процессор в машине и максимальное количество потоков ввода-вывода по умолчанию 1000. Предел 1000 фактически не ограничен. »
Обратите внимание, что это основано на .NET 2.0. Возможно, это изменилось в .NET 3.5.
[Edit] Как отметил @Mitch, это относится к CLR ThreadPool. Если вы создаете потоки, напрямую смотрите комментарии @Mitch и другие.
Это команда, которая решает мою проблему:
docker run --network docker-spark-cluster_spark-network -v /tmp/spark-apps:/opt/spark-apps --env SPARK_APPLICATION_JAR_LOCATION=$SPARK_APPLICATION_JAR_LOCATION --env SPARK_APPLICATION_MAIN_CLASS=$SPARK_APPLICATION_MAIN_CLASS --env SPARK_APPLICATION_ARGS="/opt/spark-data/README.md /opt/spark-data/output-6" spark-submit:2.4.0
Я должен использовать --env SPARK_APPLICATION_ARGS = "args1 args2 argsN" вместо -e APP_ARGS = "args1 args2 argsN".