我最近从SparkR 1.5.2迁移到1.6.0。我正在使用SparkR ::: newJObject(" java.util.HashMap")进行一些实验,我注意到行为已经改变。版本1.6.0现在返回一个"环境"而不是" jobj":
> print(class(SparkR:::newJObject("java.util.HashMap"))) # SparkR 1.5.2
[1] "jobj"
与
> print(class(SparkR:::newJObject("java.util.HashMap"))) # SparkR 1.6.0
[1] "environment"
此外,返回的环境显然是空的(当我在生成的环境中调用ls()
时,它返回character(0)
)。只有某些Java类才会出现此问题。我无法准确说出导致问题的类别。
如果我尝试创建其他类的实例,例如java.util.BitSet
,它就能成功运行。我认为它可能与参数化类有关,但它可以与ArrayList
和HashSet
一起成功运行,它们在两种情况下都采用类型参数。
关于这种行为改变的任何建议(除了#34;不使用私人功能" :-))?
非常感谢