【发布时间】:2015-06-21 18:24:43
【问题描述】:
我正在编写一些 spark 代码,并且我有一个看起来像
的 RDD[(4, <pyspark.resultiterable.ResultIterable at 0x9d32a4c>),
(1, <pyspark.resultiterable.ResultIterable at 0x9d32cac>),
(5, <pyspark.resultiterable.ResultIterable at 0x9d32bac>),
(2, <pyspark.resultiterable.ResultIterable at 0x9d32acc>)]
我需要做的是在 pyspark.resultiterable.ResultIterable 上调用一个 distinct
我试过了
def distinctHost(a, b):
p = sc.parallelize(b)
return (a, p.distinct())
mydata.map(lambda x: distinctHost(*x))
但我得到一个错误:
例外:您似乎正在尝试引用 来自广播变量、动作或转换的 SparkContext。 SparkContext 只能在驱动程序上使用,不能在它运行的代码中使用 对工人。有关详细信息,请参阅 SPARK-5063。
错误是不言自明的,我不能使用 sc。但我需要找到一种方法将 pyspark.resultiterable.ResultIterable 覆盖到 RDD,以便我可以在其上调用 distinct。
【问题讨论】:
标签: python apache-spark pyspark