转换scala.collection.Seq的Java对象<;字符串>;到python列表
在pyspark转换scala.collection.Seq的Java对象<;字符串>;到python列表,java,python,scala,apache-spark,pyspark,Java,Python,Scala,Apache Spark,Pyspark,在pysparksparkSession中,使用sc作为我的sparkContext,调用getRDDStorageInfo()JavaSparkContext,\u jsc.sc(),方法返回我可以在python中迭代的RDDInfo[]的JavaObject实例 sc.\u jsc.sc().getRDDStorageInfo()返回JavaObject id=o473 因此,以下工作: for s in sc._jsc.sc().getRDDStorageInfo(): print
sparkSession
中,使用sc
作为我的sparkContext
,调用getRDDStorageInfo()
JavaSparkContext,\u jsc.sc()
,方法返回我可以在python中迭代的RDDInfo[]
的JavaObject实例
sc.\u 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
的JavaObject
sc.\u jsc.sc().listFiles()
返回JavaObject id=o475
当我尝试迭代时,我得到了TypeError:“JavaObject”对象是不可编辑的
如何将
scala.collection.Seq
的JavaObject转换为python列表(或其他python可重用)?您可以调用scala方法size
和apply
files = sc._jsc.sc().listFiles()
py_files = [files.apply(i) for i in range(files.size())]