Spark. RDD (Resilient Distributed Dataset)

Resilient Distributed Dataset (RDD) β€” это основная абстракция Π² Apache Spark, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния Π½Π° кластСрС, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ ΠΊ ΠΎΡ‚ΠΊΠ°Π·Π°ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ трансформации ΠΈ дСйствий.

from pyspark import SparkContext
 
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ SparkContext
sc = SparkContext("local", "Simple RDD Example")
 
# БозданиС RDD из списка
data = [1, 2, 3, 4, 5]
rdd = sc.parallelize(data)
 
# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ трансформации: ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π½Π° 2
transformed_rdd = rdd.map(lambda x: x * 2)
 
# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствия: ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ всСх элСмСнтов RDD
collected_data = transformed_rdd.collect()
 
# ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
print(collected_data)  # Π’Ρ‹Π²ΠΎΠ΄: [2, 4, 6, 8, 10]
 
# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствия: сумма элСмСнтов
sum_result = rdd.reduce(lambda a, b: a + b)
print(sum_result)  # Π’Ρ‹Π²ΠΎΠ΄: 15
 
# Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SparkContext
sc.stop()