java - 将 JavaObject `scala.collection.Map<Object,RDD<?>>` 转换为 python 字典

标签 java python scala apache-spark pyspark

在pyspark中,调用getPersistentRDDs() Java SparkContext 方法返回 scala.collection.Map<Object,RDD<?>> 的 JavaObject 实例。

from pyspark.sql import SparkSession
from pyspark import StorageLevel

spark = SparkSession.builder.master('yarn').getOrCreate()
sc = spark.sparkContext

df = spark.range(0, 25000000, 1)
df.persist(StorageLevel.MEMORY_ONLY)
df.limit(1).count()

sc._jsc.sc().getPersistentRDDs()

返回JavaObject id=o477

如何转换 scala.collection.Map<Object,RDD<?>> 的 JavaObject进入Python字典?

最佳答案

from pyspark import RDD

scala_map = sc._jsc.sc().getPersistentRDDs()
py_dict = {e._1(): RDD(e._2().toJavaRDD(), sc) for e in [scala_map.toList().apply(i) for i in range(scala_map.size())]}

关于java - 将 JavaObject `scala.collection.Map<Object,RDD<?>>` 转换为 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974238/

相关文章:

scala - 如何创建注释并在 scala 中获取它们

scala - Intellij IDEA 和 SBT 语法错误

java - 意外的 Java 性能

java - 是否有供非开发人员(翻译人员!)编辑资源包的工具?

java.lang.IllegalStateException : Cannot forward after response has been committed, 位于 com.java.QTD.QuestionOfTheDay.doGet()

python - python 中的“无”

python - 如何从 json 更新 Mongoengine DynamicDocument

python 请求发送数组中的文件显示 ValueError : too many values to unpack

java - JGroups 收到 ClassNotFoundException

scala - 如何使用属性和类型类无形的案例类?