草庐IT

scala-cats

全部标签

scala - Spark 数据帧 : Pivot and Group based on columns

我有如下输入数据框,其中包含id、app和customer输入数据框+--------------------+-----+---------+|id|app|customer|+--------------------+-----+---------+|id1|fw|WM||id1|fw|CS||id2|fw|CS||id1|fe|WM||id3|bc|TR||id3|bc|WM|+--------------------+-----+---------+预期输出使用pivot和聚合-将应用值作为列名并将聚合的客户名称作为数据框中的列表预期的数据帧+-----------------

scala - 创建像 TextLine 这样的 Scalding Source,将多个文件组合成单个映射器

我们有很多小文件需要合并。在Scalding中,您可以使用TextLine将文件读取为文本行。问题是我们每个文件有1个映射器,但我们想要组合多个文件,以便它们由1个映射器处理。我知道我们需要将输入格式更改为CombineFileInputFormat的实现,这可能涉及使用级联CombinedHfs。我们不知道如何做到这一点,但它应该只是几行代码来定义我们自己的Scalding源,例如CombineTextLine。非常感谢任何可以提供代码的人。作为附带问题,我们在s3中有一些数据,如果给定的解决方案适用于s3文件,那就太好了——我想这取决于CombineFileInputFormat还

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