Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中的Spark代码可以转换成Java吗?_Java_Scala_Apache Spark_Apache Spark Mllib - Fatal编程技术网

Scala中的Spark代码可以转换成Java吗?

Scala中的Spark代码可以转换成Java吗?,java,scala,apache-spark,apache-spark-mllib,Java,Scala,Apache Spark,Apache Spark Mllib,我有一个使用ApacheSpark的源代码。源代码是用Scala编写的,我想将其转换为Java 是否可以从所有Scala源代码转换为Java?将源代码编译为.class文件(或下载,如果可用),并尝试对其进行反编译 以下是wiki操作指南中的一个工具: 将源代码编译成.class文件(如果可用,也可以下载),并尝试对其进行反编译 以下是wiki操作指南中的一个工具: 否。Spark Scala API不同于Java API tl;博士 虽然可以使用一些技巧来编译/反编译,或者让一些IDE来进行翻

我有一个使用ApacheSpark的源代码。源代码是用Scala编写的,我想将其转换为Java


是否可以从所有Scala源代码转换为Java?

将源代码编译为.class文件(或下载,如果可用),并尝试对其进行反编译

以下是wiki操作指南中的一个工具:


将源代码编译成.class文件(如果可用,也可以下载),并尝试对其进行反编译

以下是wiki操作指南中的一个工具:


。Spark Scala API不同于Java API

tl;博士

虽然可以使用一些技巧来编译/反编译,或者让一些IDE来进行翻译,但生成的代码在Spark中无法工作

原因之一是Spark Scala API使用隐式转换来启用Java API中不可用的类型相关功能,而Java API中需要使用显式类

一个简单的例子:

斯卡拉 JAVA
javapairrdpairs=words.mapToPair(新PairFunction(){
公共Tuple2调用(字符串s){返回新的Tuple2(s,1);}
});
javapairdd counts=pairs.reduceByKey(新函数2(){
公共整数调用(整数a,整数b){返回a+b;}
});

请注意Java对等方需要如何使用特定的方法(Scala中的
map
与Java中的
mapToPair
),并指定一个给定的类(javapairdd)来访问特定的pair函数,而Scala中不需要这种方法。

。Spark Scala API不同于Java API

tl;博士

虽然可以使用一些技巧来编译/反编译,或者让一些IDE来进行翻译,但生成的代码在Spark中无法工作

原因之一是Spark Scala API使用隐式转换来启用Java API中不可用的类型相关功能,而Java API中需要使用显式类

一个简单的例子:

斯卡拉 JAVA
javapairrdpairs=words.mapToPair(新PairFunction(){
公共Tuple2调用(字符串s){返回新的Tuple2(s,1);}
});
javapairdd counts=pairs.reduceByKey(新函数2(){
公共整数调用(整数a,整数b){返回a+b;}
});

请注意Java对应方需要如何使用特定的方法(Scala中的
map
与Java中的
mapToPair
),并指定一个给定的类(javapairdd)来访问特定的pair函数,而在Scala中这是不需要的。

这取决于具体情况。目前Spark(直到版本1.1)为其大多数API/子项目提供了Java版本,但不是所有项目。不支持GraphX Java API。因此,如果您的Scala代码使用graphx库,那么它可能无法在Java中工作,除非您编写自定义的粘合代码


即使将Scala类文件反编译为Java,如果程序语义没有错误,也可能无法执行Java代码。我建议您学习JavaAPI,然后用Java重写Scala代码。这也将使您更好地理解Spark API,如果您将来想编写自己的Spark程序,这是必不可少的

视情况而定。目前Spark(直到版本1.1)为其大多数API/子项目提供了Java版本,但不是所有项目。不支持GraphX Java API。因此,如果您的Scala代码使用graphx库,那么它可能无法在Java中工作,除非您编写自定义的粘合代码


即使将Scala类文件反编译为Java,如果程序语义没有错误,也可能无法执行Java代码。我建议您学习JavaAPI,然后用Java重写Scala代码。这也将使您更好地理解Spark API,如果您将来想编写自己的Spark程序,这是必不可少的

不,没有这样的工具可以将Scala源代码转换为Java。

不,没有这样的工具可以将Scala源代码转换为Java。

我很确定这里的答案是:技术上是的,但结果不是你喜欢的。你想解决什么问题?不依赖任何Scala?没有任何痕迹Scala?能够继续用Java开发最初用Scala编写的代码吗?我编辑了标题以反映问题的实际内容。最初的“Scala代码是否可以翻译成Java”过于泛化,不适用于问题的特定上下文。@maasg但现在的标题讨论了Spark代码和关于使用Java的代码的问题,并且根本不清楚应该转换什么。投票结束这个问题。这个问题对我来说很清楚:“我有使用ApacheSpark的源代码。源代码是用Scala编写的,我想把它转换成Java。”这个问题的标题选得不好,但内容明确地要求将Spark代码从Scala转换成Java。我想我们回答的是问题的主体,而不是问题的标题,对吗?在这种情况下,问题仍然有效@用户1371662作为问题负责人,你怎么看?我很确定这里的答案是:技术上是的,但结果不是你喜欢的。你想解决什么问题?不依赖任何Scala?没有任何痕迹Scala?能够继续用Java开发最初用Scala编写的代码吗?我编辑了标题以反映问题的实际内容。最初的“Scala代码是否可以翻译成Java”过于泛化,不适用于问题的特定上下文。@maasg但现在的标题讨论了Spark代码和关于使用Java的代码的问题,并且根本不清楚应该转换什么。投票结束这个问题。这个问题对我来说很清楚:“我有使用ApacheSpark的源代码。源代码是用Scala编写的,我想把它转换成Java。”这个问题的标题选得不好,但内容明确地要求从Scala t转换Spark代码
val pairs = words.map(w => (w,1))  // count here is of type RDD[(String,Int)]
val counts = words.reduceByKey(_ + _)
JavaPairRDD<String, Integer> pairs = words.mapToPair(new PairFunction<String, String, Integer>() {
  public Tuple2<String, Integer> call(String s) { return new Tuple2<String, Integer>(s, 1); }
});
JavaPairRDD<String, Integer> counts = pairs.reduceByKey(new Function2<Integer, Integer>() {
  public Integer call(Integer a, Integer b) { return a + b; }
});