草庐IT

scala-cats

全部标签

scala - 使用hadoop parquet处理大数据到CSV输出

我有3个数据集,我想加入并分组它们以获得包含聚合数据的CSV。数据作为parquet文件存储在Hadoop中,我使用Zeppelin运行ApacheSpark+Scala进行数据处理。我的数据集如下所示:user_actions.show(10)user_clicks.show(10)user_options.show(10)+--------------------+--------------------+|id|keyword|+--------------------+--------------------+|00000000000000000001|aaaa1||00000

scala - 如何将 RDD[List[String]] 转换为 String 并将其拆分

我有以下情况,当我需要从列表中获取行并将其拆分时。scala>varnonErroniousBidsMap=rawBids.filter(line=>!(line(2).contains("ERROR_")||line(5)==null||line(5)==""))nonErroniousBidsMap:org.apache.spark.rdd.RDD[List[String]]=MapPartitionsRDD[108]atfilterat:33scala>nonErroniousBidsMap.take(2).foreach(println)List(0000002,15-04-0

scala - 读取保存在 HBase 列中的 AVRO 结构

我是Spark和HBase的新手。我正在处理HBase表的备份。这些备份位于S3存储桶中。我正在使用newAPIHadoopFile通过spark(scala)阅读它们,如下所示:conf.set("io.serializations","org.apache.hadoop.io.serializer.WritableSerialization,org.apache.hadoop.hbase.mapreduce.ResultSerialization")valdata=sc.newAPIHadoopFile(path,classOf[SequenceFileInputFormat[Im

java - NoSuchMethodError : com. fasterxml.jackson.module.scala.deser.BigDecimalDeserializer

sc.newAPIHadoopRDD不断给我错误。valhBaseRDD=sc.newAPIHadoopRDD(hbase_conf,classOf[TableInputFormat],classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],classOf[org.apache.hadoop.hbase.client.Result]);java.lang.NoSuchMethodError:ava.lang.NoSuchMethodError:com.fasterxml.jackson.module.scala.deser.

scala - 如何从 Spark Executor 获取或创建 Hadoop 客户端

在对SparkDataframe执行mapPartitions操作时,是否有任何方法可以从SparkExecutor获取Hadoop文件系统?如果没有,至少有什么方法可以获取Hadoop配置以生成新的Hadoop文件系统?考虑到HDFS是基于Kerberos的。用例类似于(伪代码):spark.sql("SELECT*FROMcities").mapPartitions{iter=>iter.groupedBy(some-variable).foreach{rows=>hadoopFS.write(rows)}TaskContext.getPartitionId}

java - scala mapreduce 异常 : java. lang.ClassNotFoundException : scala. Function2

我已经在我自己的ubuntulinux18.04机器上安装并配置了jdk1.8/hadoop2.8.4/scala2.10.6,WordCountjava应用程序使用“hadoopjar”命令运行正常。然后我在与javawordcount相同的intellij项目中尝试了scala代码,代码如下:importjava.io.IOExceptionimportjava.util._importorg.apache.hadoop.fs.Pathimportorg.apache.hadoop.io._importorg.apache.hadoop.mapred._objectwc01{@th

Scala 日期格式

我有一个data_date,其格式为yyyymmdd:beginDate=Some(LocalDate.of(startYearMonthDay(0),startYearMonthDay(1),startYearMonthDay(2)))varDate=beginDate.get.......valdata_date=Date.toString().replace("-","")这会给我一个“20180202”的结果但是,对于我的用例,我需要结果为201802(yyyymm)。我不想更改beginDate的值,我只想更改data_date值以适合我的用例,我该怎么做?我可以使用拆分功能

Scala中集合的使用

第2关:Set集合的使用任务要求参考答案评论3任务描述相关知识Set集合简介定义Set集合Set集合的常用操作三个最基本的操作连接集合交集常用方法表编程要求测试说明任务描述本关任务:求出两个集合的交集。相关知识常见的集合类有List列表、Set集合、Map映射和元组等。接下来我们将为大家介绍第二种集合---Set集合。Set集合简介Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。定义Set集合以下代码演示了如何定义Set集合。objectForDemo{defmain(args:Array[String]):Unit={//定义一个空集合varset:Set[Not

scala - 基于级联的烫伤(旧版本)计数器

在scalding的旧版本中,其API中仍然没有引入计数器。HadoopCountersInScalding建议如何在烫伤中回退到级联计数器defaddCounter(pipe:Pipe,group:String,counter:String)={pipe.each(()->('addCounter))(fields=>newBaseOperation[Any](fields)withFunction[Any]{defoperate(flowProcess:FlowProcess[_],functionCall:FunctionCall[Any]){try{flowProcess.as

scala - Spark/Scala 拆分

我有这个代码:rdd.map(_.split("-")).filter(row=>{...})当我执行row.length时:This-is-a-test----on-split--这是一个测试--------输出分别是9和4。如果它为空,则不计算尾随分隔字符。如果我希望两个输出均为10,这里的解决方法是什么? 最佳答案 您可以通过将-1作为限制参数传递给split来完成您想要的操作,如下所示:rdd.map(_.split("-",-1)).filter(row=>{...})顺便说一句,预期结果是11,而不是10(因为如果您想保