在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)?
答案 0 :(得分:1)
您可以调用scala方法size
和apply
来实现
files = sc._jsc.sc().listFiles()
py_files = [files.apply(i) for i in range(files.size())]