我们计划使用Scala在Spark上进行计算。只想知道在Spark中执行Scala as Script (或) Scala as Application的最佳方法是什么。这两个方法之间有advantage/disadvantage吗?
正如前面提到的,可以执行Scala as Script。我试图跳过使用sbt的编译过程,这样我就可以像使用Python一样使用Scala作为脚本。
我有10个M5.2xlarge的EC2实例(CPU: 8,内存: 32g)。我正在尝试运行一个有70000个总大小为30 Mb的输入文件的Spark作业。最初,我的作业因为下面显示的错误而失败: Total size of serialized results of 37 tasks (1036.0 MB) is bigger than spark.driver.maxResultSize (1024.0 MB) 因此,我将参数spark.driver.maxResultSize添加到4 Gb。现在我的executor pods失败了,原因是: Futures timed out afte
使用:
星火应用程序在空闲时间超过spark.dynamicAllocation.executorIdleTimeout秒时移除执行器。
当我将executor空闲超时属性设置为下面的spark.dynamicAllocation.executorIdleTimeout= 300时,它会引发以下警告:
spark.ExecutorAllocationManager: Removing executor 0 because it has been idle for 300 seconds (new desired total will be 2)
“懒散”是什么意思?这是否意味着工人不使
鉴于Groovy具有与Scala相同的大部分功能,我们是否可以编写Groovy程序来导入并在Groovy中进行科学计算。据说Apache Spark是用Scala编写的,spark为用Java或Scala编写客户端代码提供了完全相同的库。例如:
在Groovy (或Java)中
org.apache.spark.mllib.linalg.Matrix mat =
new org.apache.spark.mllib.linalg.DenseMatrix(2,2, [1,2,3,4] as double[])
在Scala中:
val mat: mat:org.apache.spark.m
我刚刚开始使用Spark的MLib,并尝试运行提供的示例,更具体地说是
但是,使用IntelliJ集成开发环境进行编译会失败,并显示以下消息
Error:(41, 35) No TypeTag available for (org.apache.spark.ml.linalg.Vector,)
val df = spark.createDataFrame(data.map(Tuple1.apply)).toDF("features")
项目设置使用jdk1.8.0_121、spark2.11-2.1.0和Scala2.10.6。
关于这个例子为什么不能运行,有什么想法吗
我正在编写一个Spark structured streaming应用程序,它是从Kafka中读取和写入的。我一直试图为我的spark应用程序创建一个胖jar (使用sbt assembly),然后我可以使用spark-submit脚本将其提交到星火集群。
但是,应用程序始终失败,出现以下错误:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
a
我正在尝试对Apache Hadoop 2.2.0纱线集群运行Spark-1.0.1。它们都部署在我的Windows7机器上。当我尝试运行Hadoop端的JavaSparkPI示例时,我得到了解析异常。在Spark端,所有参数看起来都没问题,port的5位数字后没有额外的字符。有人能帮帮忙吗..。
Exception in thread "main" java.lang.NumberFormatException: For input string: "57831'"
at java.lang.NumberFormatException.forI
我是spark的新手。我试图通过将RDD的每个元素发送给executors进行进一步处理来处理和RDD。
我在驱动程序代码中创建RDD,如下所示:
ArrayList<String> test = new ArrayList<String>();
test.add("conf1");
test.add("conf12");
JavaRDD<String> result = sc.parallelize(test);
我不确定如何处理它,这样我才能在executor中同时处理conf1和conf12。我已经尝试了平面地图和地图,
我在Spark1.5.1中有一个spark.ml管道,它由一系列变压器和k均值估计器组成。我想在安装管道后能够访问.clusterCenters,但不知道如何实现。是否有一个与spark.ml等价的pipeline.named_steps特性?
我找到了,它提供了两个选项。首先,如果我把k均值模型从我的管道中取出来并分别安装它,那么第一种方法是可行的,但这有点违背了管道的目的。第二种选择行不通--我得到了error: value getModel is not a member of org.apache.spark.ml.PipelineModel。
编辑:示例管道:
import org.
我不知道是什么导致了运行几个小时后运行我的星火作业的异常。
我正在运行星火2.0.2
有调试提示吗?
2016-12-27 03:11:22,199 [shuffle-server-3] ERROR org.apache.spark.network.server.TransportRequestHandler - Error while invoking RpcHandler#receive() for one-way message.
org.apache.spark.SparkException: Could not find CoarseGrainedScheduler.
at
我是星火的新手。我试图在shell中运行以下代码:
import org.apache.spark.api.java.JavaSparkContext
import org.apache.hadoop.conf
JavaSparkContext context = new JavaSparkContext(conf);
但我得到了以下错误:
<console>:32: error: value context is not a member of object
org.apache.spark.api.java.JavaSparkContext
val $ires10 = Jav
我知道当您在pyspark中处于客户端模式时,您不能在脚本中设置配置,因为JVM一加载库就会启动。
因此,设置配置的方法是实际编辑启动它的shell脚本:spark-env.sh...according to this documentation 。
如果我想更改驱动程序的最大结果大小,我通常会这样做:spark.driver.maxResultSize。与spark-env.sh文件中的内容等效的是什么?
一些环境变量很容易设置,比如SPARK_DRIVER_MEMORY显然是spark.driver.memory的设置,但是spark.driver.maxResultSize的环境变量是什