将 scala.collection.Seq 的 Java 对象转换为<String> python list



在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()返回scala.collection.Seq<String>的JavaObject。

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

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

如何将scala.collection.Seq<String>的JavaObject转换为Python列表(或其他python Itable(?

您可以调用Scala方法sizeapply进行此操作

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

相关内容

最新更新