草庐IT

sparking

全部标签

java - Spark NullPointerException 与 saveAsTextFile

我在尝试合并和保存RDD时遇到了NPE。代码在本地工作,和在scalashell中的集群上工作,但在将其作为作业提交到集群时抛出错误。我尝试使用take()打印出来以查看rdd是否包含一些空数据,但这会引发相同的错误-痛苦,因为它在shell中工作正常。我正在保存到HDFS并在变量中包含完整的url路径-在MLLib训练阶段使用此方法可以很好地保存模型。非常感谢任何想法!Scala代码(整体预测函数)://LoadtheRandomForestvalrfModel=RandomForestModel.load(sc,modelPath)//Makethepredictions-Here

hadoop - Spark 不利用 parquet 的 hdfs 分区

我正在使用以下命令将parquet文件写入hdfs:df.write.mode(SaveMode.Append).partitionBy(id).parquet(path)之后我正在读取和过滤这样的文件:valfile=sqlContext.read.parquet(folder)valdata=file.map(r=>Row(r.getInt(4).toString,r.getString(0),r.getInt(1),r.getLong(2),r.getString(3)))valfilteredData=data.filter(x=>x.thingId.equals("1"))f

hadoop - 在独立模式下运行 spark 集群与 Yarn/Mesos

目前我正在以独立模式运行我的spark集群。我正在从平面文件或Cassandra(取决于工作)读取数据,并将处理后的数据写回到Cassandra本身。我想知道我是否切换到Hadoop并开始使用像YARN或mesos这样的资源管理器,它是否给我带来了额外的性能优势,例如执行时间和更好的资源管理?目前我在洗牌过程中处理大量数据时可能会出现阶段失败。如果我迁移到YARN,Resourcemanager可以解决这个问题吗? 最佳答案 Spark独立集群管理器还可以为您提供集群模式功能。如果您只运行Spark,Spark独立集群将提供几乎所有

python - 如何将二进制文件从 hdfs 读入 Spark 数据帧?

我正在尝试将一些代码从pandas移植到(py)Spark。不幸的是,我已经在输入部分失败了,我想在其中读取二进制数据并将其放入SparkDataframe。到目前为止,我正在使用来自numpy的fromfile:dt=np.dtype([('val1','但是对于Spark,我找不到如何去做。到目前为止,我的解决方法是使用csv-Files而不是二进制文件,但这不是理想的解决方案。我知道我不应该将numpy的fromfile与spark一起使用。如何读取已加载到hdfs中的二进制文件?我试过类似的东西fileRDD=sc.parallelize(['hdfs:///user/bin_

scala - 作为 Spark 作业提交时 Spark RDD 映射中的 NullPointerException

我们正在尝试提交一个spark作业(spark2.0、hadoop2.7.2),但出于某种原因,我们在EMR中收到了一个相当神秘的NPE。一切都像scala程序一样运行良好,所以我们不确定是什么导致了这个问题。这是堆栈跟踪:18:02:55,271ERRORUtils:91-Abortingtaskjava.lang.NullPointerExceptionatorg.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIterator.agg_doAggregateWithKeys$(UnknownSource)

python - Spark - 为我的 Spark 作业分配了多少执行器和内核

Spark架构完全围绕执行器和内核的概念展开。我想看看在集群中运行的spark应用程序实际上有多少执行程序和内核在运行。我试图在我的应用程序中使用下面的代码片段,但没有成功。valconf=newSparkConf().setAppName("ExecutorTestJob")valsc=newSparkContext(conf)conf.get("spark.executor.instances")conf.get("spark.executor.cores")有没有办法使用SparkContext对象或SparkConf对象等获取这些值。 最佳答案

scala - Spark : grouping rows in array by key

我有一个像这样的spark数据集:keyidval1val2val31aa1a2a32aa4a5a63bb1b2b34bb4b5b65bb7b8b96cc1c2c3我想像这样在列表或数组中按id对所有行进行分组:(a,([1aa1a2a3],[2aa4a5a6])),(b,([3bb1b2b3],[4bb4b5b6],[5bb7b8b9])),(c,([6cc1c2c3]))我已经使用map输出具有正确键的键/值对,但我在构建最终键/数组时遇到了麻烦。有人可以帮忙吗? 最佳答案 这个怎么样:importorg.apache.spar

hadoop - 在 YARN 上运行时,Spark 调度程序池如何工作?

我有混合的Spark版本(1.6、2.0、2.1),全部部署在YARN(Hadoop2.6.0/CDH5.5)上。我试图保证某个应用程序永远不会缺少我们YARN集群上的资源,无论那里可能正在运行什么。我启用了随机播放服务并设置了一些FairSchedulerPools如Spark文档中所述。我为我希望永远不会资源匮乏的高优先级应用程序创建了一个单独的池,并为它提供了minShare资源:FAIR10FAIR124当我在YARN集群上运行Spark应用程序时,我可以看到我配置的池已被识别:17/04/0411:38:20INFOscheduler.FairSchedulableBuild

apache-spark - Spark Dataframe 丢失分区

我在读取spark数据帧时发现了这个奇怪的问题。我将数据框重新分区为50k个分区。但是,当我读取数据帧并对其执行计数操作时,我发现当我使用spark2.0时,底层的rdd只有2143个分区。于是我去了我保存重新分区数据的路径,发现hfs-ls/repartitionedData/|wc-l50476因此它在保存数据时创建了50k个分区。但是对于spark2.0,vald=spark.read.parquet("repartitionedData")d.rdd.getNumPartitionsres4:Int=2143但是对于spark1.5,vald=spark.read.parque

scala - 如何将 Spark RDD 保存到本地文件系统

我可以使用saveAsTextFile将文件保存到本地系统吗?句法?这就是我编写语法来保存文件的方式:insert_df.rdd.saveAsTextFile("")当我尝试执行此操作时,由于没有权限而出现错误,但我拥有对该特定本地路径的所有权限,看起来它正在将该文件视为HDFS文件。 最佳答案 我认为您应该尝试使用"file:///localpath"而不是"/localpath"。 关于scala-如何将SparkRDD保存到本地文件系统,我们在StackOverflow上找到一个类