|
|
1
2
一般来说,你不会。虽然在这种情况下有时可以访问,但使用
实际上,您应该做Spark内部所做的事情——而不是直接公开Scala API,而是创建一个lean*Java或Scala API,它是专门为与来宾语言的互操作性而设计的。由于Py4j只提供基本Python和Java类型之间的转换,并且不处理常用的Scala接口,所以您无论如何都需要这样的中间层,除非Scala库是专门为Java互操作性设计的。 作为你最后的顾虑 Py4j可以很好地处理Java泛型,无需任何特殊处理。高级Scala特性(清单、类标记、类型标记)通常是不可行的,但同样,在设计时没有考虑Java互操作性(尽管这是可能的)。 *根据经验,如果某个东西是Java友好的(不需要任何疯狂的破解、广泛的类型转换,或者填充Scala编译器通常处理的空白),那么它也应该很适合PySpark。 |