简体   繁体   English

转换scala.collection.Seq的Java对象 <String> 到python列表

[英]Convert Java object of scala.collection.Seq<String> to python list

In a pyspark sparkSession , with sc as my sparkContext , calling the getRDDStorageInfo() Java sparkContext, _jsc.sc() , method returns a JavaObject instance of RDDInfo[] that I can iterate over in python. 在pyspark sparkSession ,以sc作为我的sparkContext ,调用getRDDStorageInfo() Java sparkContext _jsc.sc() ,该方法返回RDDInfo[]RDDInfo[]实例,可以在python中进行迭代。

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

So the following works: 因此,以下工作:

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

However, the Java sparkContext method listFiles() returns a JavaObject of scala.collection.Seq<String> . 但是,Java sparkContext方法listFiles listFiles()返回scala.collection.Seq<String> JavaObject。

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

and when I try and iterate over that I get TypeError: 'JavaObject' object is not iterable 当我尝试遍历时,我得到TypeError: 'JavaObject' object is not iterable

How can I convert the JavaObject of scala.collection.Seq<String> into a python list (or other python iterable)? 如何将scala.collection.Seq<String>scala.collection.Seq<String>转换为python列表(或其他可迭代的python)?

You can call scala methods size and apply to do this 您可以调用scala方法的sizeapply执行此操作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在Java代码中从scala.collection.Seq <String>转换为java.util.List <String> - Convert from scala.collection.Seq<String> to java.util.List<String> in Java code 是否可以在一个类中同时实现scala.collection.Seq [T]和java.util.List [T] - Is it possible to implement both scala.collection.Seq[T] and java.util.List[T] in one class scala.collection.Seq在Java上不起作用 - scala.collection.Seq doesn't work on Java 如何修复java.lang.ClassCastException:无法将scala.collection.immutable.List实例分配给字段类型scala.collection.Seq? - How to fix java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.List to field type scala.collection.Seq? 如何将Scala集合Seq [(Int,Seq [String])]转换为Java集合List [(int,List [String])]? - How to convert Scala collection Seq[(Int, Seq[String])] to Java collection List[(int, List[String])]? 如何将Java Collection / List转换为Scala seq? - How to convert a Java Collection/List to a Scala seq? 在Scala中将Scala.collection.immutable.List的类强制转换为异常到scala.collection.Seq - Getting class cast exception in spark ml for scala.collection.immutable.List to scala.collection.Seq 线程“main”中的异常 java.lang.NoSuchMethodError: &#39;void scala.util.matching.Regex。<init> (java.lang.String, scala.collection.Seq)&#39; - Exception in thread "main" java.lang.NoSuchMethodError: 'void scala.util.matching.Regex.<init>(java.lang.String, scala.collection.Seq)' java.lang.ClassCastException: org.apache.spark.sql.Column cannot be cast to scala.collection.Seq - java.lang.ClassCastException: org.apache.spark.sql.Column cannot be cast to scala.collection.Seq 将Scala Seq转换为Java列表 - Convert Scala Seq to Java List
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM