将scala.collection.Seq <string>的Java对象转换为python列表

时间:2019-05-03 16:51:51

标签: java python scala apache-spark pyspark

在pyspark sparkSession中,以sc为我的sparkContext,调用getRDDStorageInfo() Java sparkContext _jsc.sc(),方法返回{{ 1}},我可以在python中进行迭代。

RDDInfo[]返回sc._jsc.sc().getRDDStorageInfo()

因此,以下工作有效:

JavaObject id=o473

但是,Java sparkContext方法for s in sc._jsc.sc().getRDDStorageInfo(): print s.name() print s.memSize() print s.numPartitions() print s.numCachedPartitions() 返回的JavaObject是listFiles()

scala.collection.Seq<String>返回sc._jsc.sc().listFiles()

当我尝试迭代时,我得到JavaObject id=o475

如何将TypeError: 'JavaObject' object is not iterable的JavaObject转换为python列表(或其他可迭代的python)?

1 个答案:

答案 0 :(得分:1)

您可以调用scala方法sizeapply来实现

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