【问题标题】:Convert Java object of scala.collection.Seq<String> to python list将 scala.collection.Seq<String> 的 Java 对象转换为 python 列表
【发布时间】:2019-09-22 06:11:30
【问题描述】:

在 pyspark sparkSession 中,sc 作为我的 sparkContext,调用 getRDDStorageInfo() Java sparkContext,_jsc.sc(),方法返回 RDDInfo[] 的 JavaObject 实例,我可以在 python 中对其进行迭代。

sc._jsc.sc().getRDDStorageInfo() 返回JavaObject id=o473

所以下面的工作:

for s in sc._jsc.sc().getRDDStorageInfo():
    print s.name()
    print s.memSize()
    print s.numPartitions()
    print s.numCachedPartitions()

但是,Java sparkContext 方法listFiles() 返回一个JavaObject scala.collection.Seq&lt;String&gt;

sc._jsc.sc().listFiles() 返回JavaObject id=o475

当我尝试迭代时,我得到TypeError: 'JavaObject' object is not iterable

如何将scala.collection.Seq&lt;String&gt; 的JavaObject 转换为python 列表(或其他python 可迭代)?

【问题讨论】:

    标签: java python scala apache-spark pyspark


    【解决方案1】:

    您可以调用 scala 方法 sizeapply 来执行此操作

    files = sc._jsc.sc().listFiles()
    py_files = [files.apply(i) for i in range(files.size())]
    

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2021-11-17
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多