Я пытаюсь проверить, сохраняет ли persist()
на rdd после partitionBy
последующую операцию, и, похоже, спарк-интерфейс подсказывает, что я не сохраняю.
Я предполагаю, что этап 7 или этап 8 следует пропустить, если persist
сработало
(Мой тестовый код может быть неправильным, в любом случае, пожалуйста, дайте мне знать.)
![enter image description here](https://i.stack.imgur.com/WX5m3.png)
Вот код, который я использую
from pyspark import SparkContext, SparkConf
from pyspark.rdd import portable_hash
from pyspark.sql import SparkSession, Row
from pyspark.storagelevel import StorageLevel
transactions = [
{'name': 'Bob', 'amount': 100, 'country': 'United Kingdom'},
{'name': 'James', 'amount': 15, 'country': 'United Kingdom'},
{'name': 'Marek', 'amount': 51, 'country': 'Poland'},
{'name': 'Johannes', 'amount': 200, 'country': 'Germany'},
{'name': 'Paul', 'amount': 75, 'country': 'Poland'},
]
conf = SparkConf().setAppName("word count4").setMaster("local[3]") sc = SparkContext(conf = conf)
lines = sc.textFile("in/word_count.text")
words = lines.flatMap(lambda line: line.split(" "))
rdd = words.map(lambda word: (word, 1))
rdd = rdd.partitionBy(4)
rdd = rdd.persist(StorageLevel.MEMORY_ONLY)
rdd = rdd.reduceByKey(lambda x, y: x+y)
for count, word in rdd.collect():
print("{} : {}".format(word, count))
rdd = rdd.sortByKey(ascending=False)
for count, word in rdd.collect():
print("{} : {}".format(word, count))