python - 在小型实践 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())
解决方案
你快到了,函数调用是RDD.filter:
words = ['hey', 'how', 'are', 'you']
wordRDD = spark.sparkContext.parallelize(words)
filterRDD = wordRDD.filter(lambda word: word.startswith("h"))
print(filterRDD.collect())
推荐阅读
- c++ - 删除文件有什么问题?
- python - 如何将不同版本的二进制文件发布到 pypi.org?
- r - R删除名称并按频率排序ggplot
- proxy - Squid - 允许本地网络访问特定网站
- python - 为什么应用 xlrd.xldate_as_datetime() 函数不会按预期更新数据帧的子集?
- javascript - 按对象的键/值的打字稿动态功能
- python - 对每次迭代中调用两次的同一方法执行多处理
- reactjs - TypeError:无法读取未定义的属性“错误”
- docker - 如何在我的 docker 镜像中安装 openmodelica?
- bash - 将两个数组组合成一个具有两个属性的对象数组