草庐IT

language-scala

全部标签

Scala spark 按键归约并找到共同值(value)

我有一个csv数据文件,作为sequenceFile存储在HDFS上,格式为name,zip,country,fav_food1,fav_food2,fav_food3,fav_colour。可能有许多同名的条目,我需要找出他们最喜欢的食物是什么(即计算所有记录中具有该名称的所有食物条目并返回最受欢迎的条目。我是Scala和Spark的新手并且有仔细阅读了多个教程并搜索了论坛,但我仍然不知道如何继续。到目前为止,我已经得到了将文本转换为字符串格式然后过滤掉条目的序列文件这是文件中一行的示例数据条目Bob,123,USA,Pizza,Soda,,BlueBob,456,UK,Chocol

scala - 为什么 Spark reduceByKey 的结果不一致

我正在尝试使用scala通过spark计算每行的迭代次数。以下是我的输入:1维克拉姆2萨钦3肖比特4好吧5个阿库尔5个阿库尔1维克拉姆1维克拉姆3肖比特10阿树5个阿库尔1维克拉姆2萨钦7维克拉姆现在我创建了2个独立的RDD,如下所示。valf1=sc.textFile("hdfs:///pathtoabovedatafile")valm1=f1.map(s=>(s.split("")(0),1))//creatingatuple(key,1)//nowificreateaRDDasvalrd1=m1.reduceByKey((a,b)=>a+b)rd1.collect().forea

scala - 在 Spark 作业中写入 HBase : a conundrum with existential types

我正在尝试编写一个应将其输出放入HBase的Spark作业。据我所知,正确的方法是使用saveAsHadoopDataset方法。在org.apache.spark.rdd.PairRDDFunctions-这需要我的RDD由对组成。方法saveAsHadoopDataset需要JobConf,这就是我要构建的。根据thislink,我必须在我的JobConf上设置一件事是输出格式(实际上没有它就不能工作),比如jobConfig.setOutputFormat(classOf[TableOutputFormat])问题是显然这不能编译,因为TableOutputFormat是通用的,

scala - Spark + Scala 转换、不变性和内存消耗开销

我在Youtube上浏览了一些关于Spark的视频架构。尽管惰性评估、发生故障时数据创建的弹性、良好的函数式编程概念是Resilenace分布式数据集成功的原因,但一个令人担忧的因素是由于多个transformations造成的内存开销。由于数据不变性导致内存开销。如果我正确理解这个概念,每次转换都会创建新的数据集,因此内存需求会减少很多次。如果我在我的代码中使用10次转换,将创建10组数据集,我的内存消耗将增加10倍。例如valtextFile=sc.textFile("hdfs://...")valcounts=textFile.flatMap(line=>line.split("

scala - 值 toDS 不是 org.apache.spark.rdd.RDD 的成员

我正在尝试编写将RDD转换为数据集的示例ApacheSpark程序。但是在那个过程中,我遇到了编译时错误。这是我的示例代码和错误:代码:importorg.apache.spark.SparkConfimportorg.apache.spark.rdd.RDDimportorg.apache.spark.SparkContextimportorg.apache.spark.sql.DatasetobjectHello{caseclassPerson(name:String,age:Int)defmain(args:Array[String]){valconf=newSparkConf(

scala - 在 Yarn 集群上提交 Spark 作业

我现在已经为以下问题苦苦挣扎了2天多。我用Scala编写了一个基本的“HelloWorld”脚本:objectHelloextendsApp{println("WELCOMETOAFIRSTTESTWITHSCALACOMPILEDWITHSBTcountingfr.1:15withsleep1")valdata=1to15for(a然后我用SBT编译以获得JAR编译版本。然后我使用HDP2.2.4.2将所有内容传输到集群(这是在虚拟Linux机器上运行的Horthonworks沙箱)。我实际上能够使用yarn-client在集群上使用以下命令运行该作业:spark-submit--v

scala - <控制台> :22: error: not found: value sc

我是Spark的新手,正在学习Spark。在实践中,面临以下几个问题。多步而幽长。我在UNIX环境中使用spark-shell。出现如下错误。第一步$spark-shellWelcometo______/__/__________//___\\/_\/_`/__/'_//___/.__/\_,_/_//_/\_\version1.3.1/_/UsingScalaversion2.10.4(JavaHotSpot(TM)64-BitServerVM,Java1.7.0_25)Typeinexpressionstohavethemevaluated.Type:helpformoreinfo

scala - 在 Spark 中处理超过 3GB 的记录大小

当单个记录大小超过3GB时,我会遇到异常`java.lang.IllegalArgumentExceptionApp>atjava.nio.CharBuffer.allocate(CharBuffer.java:330)App>atjava.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:792)App>atorg.apache.hadoop.io.Text.decode(Text.java:412)App>atorg.apache.hadoop.io.Text.decode(Text.java:389)App>atorg.a

scala - 将 aws 凭据配置文件与 spark scala 应用程序一起使用

如果可能的话,我希望能够在我的sparkscala应用程序中使用我维护的具有不同配置文件的~/.aws/credentials文件。我知道如何在我的应用程序中为s3a设置hadoop配置,但我不想继续使用不同的硬编码key,而宁愿像我对不同程序所做的那样只使用我的凭据文件。我还尝试过使用javaapi,例如valcredentials=newDefaultAWSCredentialsProviderChain().getCredentials()然后创建一个s3客户端,但这不允许我在从中读取文件时使用我的keys3。我也知道当我运行我的应用程序时,key可以进入core-site.xm

scala - 将 Spark Dataframe 中的一列转换为多列

我有一个具有这种结构的大数据框(或多或少1.2GB):+---------+--------------+------------------------------------------------------------------------------------------------------+|country|date_data|text|+---------+--------------+------------------------------------------------------------------------------------------