首页 > 解决方案 > 在小型实践 RDD 上使用 .filter 和 .collect 打印所有以 'h' 开头的单词(pyspark 初学者)

问题描述

我刚刚开始学习如何在 Jupyternotebook 和初学者编码器上使用 pyspark。

为了测试水域,我创建了这个数组:word = ['hey', 'how', 'are', 'you']

然后这个 RDD: wordRDD = spark.sparkContext.parallelize([word])

我现在正在尝试在 wordRDD 上使用 .filter 和 .collect 来打印所有以 'h' 开头的单词,但无法解决。有没有人有任何想法?

据我所知:

word = ['hey', 'how', 'are', 'you']
wordRDD = spark.sparkContext.parallelize([word])

print(wordRDD.filter.map(lambda x=x: x in wordRDD if x[0] == "h").collect())

标签: pythonpysparklambdajupyter-notebookrdd

解决方案


你快到了,函数调用是RDD.filter

words = ['hey', 'how', 'are', 'you']
wordRDD = spark.sparkContext.parallelize(words)

filterRDD = wordRDD.filter(lambda word: word.startswith("h"))
print(filterRDD.collect())

推荐阅读