我正在尝试访问 RDD 的依赖项。在 Scala 中,这是一个非常简单的代码:
scala> val myRdd = sc.parallelize(0 to 9).groupBy(_ % 2)
myRdd: org.apache.spark.rdd.RDD[(Int, Iterable[Int])] = ShuffledRDD[2] at groupBy at <console>:24
scala> myRdd.dependencies
res0: Seq[org.apache.spark.Dependency[_]] = List(org.apache.spark.ShuffleDependency@6c427386)
但 PySpark 中不提供依赖项。有关如何访问它们的任何指示吗?
>>> myRdd.dependencies
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'PipelinedRDD' object has no attribute 'dependencies'
没有支持的方法来做到这一点,因为它没有那么有意义。你可以
rdd = sc.parallelize([1, 2, 3]).map(lambda x: x)
deps = sc._jvm.org.apache.spark.api.java.JavaRDD.toRDD(rdd._jrdd).dependencies()
print(deps)
## List(org.apache.spark.OneToOneDependency@63b86b0d)
for i in range(deps.size()):
print(deps.apply(i))
## org.apache.spark.OneToOneDependency@63b86b0d
但我认为这不会让你走得太远。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)