Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
java中SparkContext并行化调用示例_Java_Apache Spark - Fatal编程技术网

java中SparkContext并行化调用示例

java中SparkContext并行化调用示例,java,apache-spark,Java,Apache Spark,我刚开始使用Spark,在尝试实现map函数的简单示例时遇到了问题。问题在于新版Spark中“并行化”的定义。有人可以分享如何使用它的例子,因为下面的方法给出了参数不足的错误 Spark版本:2.3.2 Java:1.8 SparkSession session = SparkSession.builder().appName("Compute Square of Numbers").config("spark.master","local").getOrCreate(); SparkConte

我刚开始使用Spark,在尝试实现map函数的简单示例时遇到了问题。问题在于新版Spark中“并行化”的定义。有人可以分享如何使用它的例子,因为下面的方法给出了参数不足的错误

Spark版本:2.3.2 Java:1.8

SparkSession session = SparkSession.builder().appName("Compute Square of Numbers").config("spark.master","local").getOrCreate();
SparkContext context = session.sparkContext();
List<Integer> seqNumList = IntStream.rangeClosed(10, 20).boxed().collect(Collectors.toList());
JavaRDD<Integer> numRDD = context.parallelize(seqNumList, 2);
SparkSession session=SparkSession.builder().appName(“计算数字平方”).config(“spark.master”、“local”).getOrCreate();
SparkContext上下文=会话。SparkContext();
List-seqNumList=IntStream.rangeClosed(10,20).boxed().collect(Collectors.toList());
JavaRDD numRDD=context.parallelize(seqNumList,2);
Compiletime错误消息:该方法需要3个参数

我不明白第三个论点应该是什么样的?根据文件,应该是

scala.reflect.ClassTag<T>
scala.reflect.ClassTag
但如何定义或使用它呢

请不要建议使用JavaSparkContext,因为我想知道如何使用通用SparkContext使用这种方法


Ref:

这是我最后使用的代码。这不是实现结果的最佳方式,但对我来说是探索API的一种方式

SparkSession会话=SparkSession.builder().appName(“计算数字平方”) .config(“spark.master”、“local”).getOrCreate()

SparkContext context=session.SparkContext();
List-seqNumList=IntStream.rangeClosed(10,20).boxed().collect(Collectors.toList());
RDD numRDD=上下文
.parallelize(JavaConverters.asscalateratorconverter(seqNumList.iterator()).asScala()
.toSeq(),2,scala.reflect.ClassTag$.MODULE$.apply(Integer.class));
foreach(x->System.out.println(x));
session.stop();

问题出在哪里?或者我们猜猜看?你读过JavaDoc吗??该方法有3个参数:
scala.reflect.ClassTag$.MODULE$.apply(Integer.class)JavaConversions.asScalaBuffer(seqNumList)
-老实说,我不知道你想在Java中调用这个方法是什么。。。那是weird@AKSW谢谢你的类标签评论。这就是我们要找的。我知道这不是最佳方式,但我想了解如何与SparkContext一起使用parallelize,因为这是访问Spark处理的新的统一方式。或者您仍然建议使用JavaSparkContext来完成这些任务?
SparkContext context = session.sparkContext();

List<Integer> seqNumList = IntStream.rangeClosed(10, 20).boxed().collect(Collectors.toList());


RDD<Integer> numRDD = context
        .parallelize(JavaConverters.asScalaIteratorConverter(seqNumList.iterator()).asScala()
                .toSeq(), 2, scala.reflect.ClassTag$.MODULE$.apply(Integer.class));


numRDD.toJavaRDD().foreach(x -> System.out.println(x));
session.stop();