【问题标题】:convert JavaObject `scala.collection.Map<Object,RDD<?>>` to python dictionary将 JavaObject `scala.collection.Map<Object,RDD<?>>` 转换为 python 字典
【发布时间】:2019-09-22 06:17:02
【问题描述】:

在 pyspark 中,调用 getPersistentRDDs() Java sparkContext 方法会返回一个 scala.collection.Map&lt;Object,RDD&lt;?&gt;&gt; 的 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&lt;Object,RDD&lt;?&gt;&gt; 的JavaObject 转换为python 字典?

【问题讨论】:

    标签: java python scala apache-spark pyspark


    【解决方案1】:
    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())]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-19
      • 2016-10-16
      • 1970-01-01
      • 2017-07-21
      • 2021-09-24
      • 2018-12-09
      • 2021-03-28
      • 2011-01-29
      相关资源
      最近更新 更多