Работа с кластером на языке Python
reysand - 3 июля, 2025 - 13:48
В начале файла инициализируйте Spark-сессию:
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("Pi").getOrCreate()
В конце программы обязательно завершайте сессию:
spark.stop()
Пример программы на Python (./pi.py):
import sys from random import random from operator import add from pyspark.sql import SparkSession if __name__ == "__main__": """ Usage: pi [partitions] """ spark = SparkSession\ .builder\ .appName("PythonPi")\ .getOrCreate() partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2 n = 100000 * partitions def f(_: int) -> float: x = random() * 2 - 1 y = random() * 2 - 1 return 1 if x ** 2 + y ** 2 <= 1 else 0 count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add) print("Pi is roughly %f" % (4.0 * count / n)) spark.stop()
Запуск программы на кластере:
spark-submit --archives env.tar.gz#env --jars /opt/spark-plugins/rapids-4-spark_2.12-25.06.0.jar pi.py 100
- 11 просмотров