Что значит распределенной?
Представь, что ты археолог и тебе нужно раскопать огромную территорию. Ты решил позвать n друзей, вы начали работать параллельно, и теперь вы закончите в n раз быстрее. Так и в спарке: каждая операция делится на маленькие таски, которые одновременно обрабатываются несколькими компьютерами, что ускоряет весь процесс.
Со спарком обычно работают на Python (через либу PySpark) и Scala.
Сначала нужно создать SparkSession:
from pyspark.sql import SparkSession
spark = (SparkSession.builder
.appName("SparkExample")
.master("yarn")
.config("spark.some.config.option", "config-value")
.enableHiveSupport()
.getOrCreate()
)
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder()
.appName("SparkExample")
.master("yarn")
.config("spark.some.config.option", "config-value")
.enableHiveSupport()
.getOrCreate()
Пару слов про code style в питоне. Есть два варианта:
1) обратный слэш
spark = SparkSession.builder \
.appName("SparkExample") \
...
2) скобки
spark = (SparkSession.builder
.appName("SparkExample")
...
)
Я лично предпочитаю второй подход, потому что в первом нельзя закомментить строчки (только удалить, иначе синтаксическая ошибка) и нужно проставлять бэкслэши на каждой строке. Во втором - только один раз обрамить скобками, и все👌
#spark
