【发布时间】:2018-03-24 16:16:07
【问题描述】:
我有一个像下面这样的rdd['1','5','7','8']
首先我想把它转换成['1 5','1 7', '1 8','5 7','5 8', '7 8'...]
那么['1 5 7', '1 5 8', '1 7 8'...]
在这些步骤之间可能需要额外的步骤,例如删除重复项和其他值 -
喜欢'1 1' or '1 5' and '5 1'
rdd.reduce(lambda x,y: (x+ " " + y)).collect()
返回类似
的东西'1 5 7 8'
如何分解它是我正在努力解决的问题。
或者,我应该在 rdd 上使用 foreach 函数并将元素和 rdd 传递给函数并通过循环遍历所有元素来返回对吗?
这只是示例数据,实际数据很多,所以我怀疑循环遍历所有元素是否是个好主意! :(
非常感谢我应该去的任何帮助或方向。
或者数据框在处理这些事情时会更好吗?
【问题讨论】:
-
spark 对您的要求没有好处,因为您的要求建议在一个执行程序中收集所有数据并在保留订单的情况下进行处理。简单的 python 代码将比 spark 更快地完成工作
-
好的,谢谢 Ramesh,我实际上是在尝试在 apache pyspark 中实现 apriori 算法,这是查找候选项目集的步骤。那么,您的建议是使用 python 代码然后使用 spark api 来查找对的这个步骤更好?也许在通过python得到这个
['1 5','1 7', '1 8','5 7','5 8', '7 8'...]之后,我可以切换回spark来做一些处理,比如计算对等。无论如何,spark api只会在某些情况下有所帮助,而不是全部?
标签: apache-spark dataframe pyspark rdd