草庐IT

scala-tools

全部标签

scala - Spark - 按输出 (RDD) 从组中删除 CompactBuffer

问题陈述RDD分组后需要格式化Spark输出(移除CompactBuffer)输入Header1^Header2A^4BA^11AB^7AC^6DFC^7DS期望的输出(A,(4B,11A))(B,(7A))(C,(6DF,7DS))我尝试了什么valrecords=sc.textFIle("/user/chronicles/test.txt").map(x=>{valy=x.split("\\^",-1)(y(0).trim(),y(1).trim())}).groupBy(x=>x._1)records.foreach(println)输出(A,CompactBuffer((4B,

scala - Spark Streaming textFileStream 复制

我正在尝试监视HDFS中的存储库以读取和处理复制到它的文件中的数据(将文件从本地系统复制到HDFS我使用hdfsdfs-put),有时它会产生问题:SparkStreaming:java.io.FileNotFoundException:Filedoesnotexist:.COPYING所以我阅读了论坛中的问题和此处的问题SparkStreaming:java.io.FileNotFoundException:Filedoesnotexist:._COPYING_根据我读到的内容,问题与Spark流式传输在文件完成复制到HDFS和Github之前读取文件有关:https://githu

scala - 无法解决 Spark 作业中的符号拆分

我在我的IntelliJIDE上运行一个spark应用程序作为Maven项目,我正在尝试创建一个rowRDD并将它们转换为数据帧并将其存储在hdfs中。SPARKVERSION:1.5.2SCALAVERSION:2.10.4我的代码:valrowRDD=dataframename.map(_.split("\t")).map(p=>Row(p(0),p(1),p(2),p(3)))它报告值拆分不是我的类包的成员并且报告应用程序不采用任何参数。存在一些依赖性问题,我需要这方面的帮助。注意:我已经完成了rowRDD的模式定义感谢支持 最佳答案

scala - Spark-scala 如何使用 HDFS 目录分区

为了减少处理时间,我按日期对数据进行分区,以便我只使用所需的日期数据(不是完整的表格)。所以现在在HDFS中,我的表格存储如下src_tbl//maindirtrg_tbl2016-01-01//subdir2015-12-302016-01-022015-12-312016-01-032016-01-012016-01-03现在我想从src_tbl中选择min(date)这将是2016-01-01从trg_tbl我想使用>=2016-01-01(src_tblmin(date))目录中的数据2016-01-01和2016-01-03数据`如何使用Spark-scala从hdfs选择所

scala - 限制 yarn 容器一次只能执行一个任务

我正在使用hadoop集群运行Spark程序,它使用yarn调度程序来运行任务。但是,我注意到一个奇怪的行为。yarn有时会杀死提示内存不足错误的任务,而如果我轮流执行任务,即执行与容器/执行程序相同数量的任务,让它们完成,然后执行下一组任务,它运行良好,这意味着任务使用的内存不会超过容器中允许的内存。所以,我怀疑yarn试图在容器中并行运行多个任务,这就是容器内存不足的原因。有没有办法限制这种行为并告诉yarn在容器中一次只运行一个任务。 最佳答案 一般来说,Spark请求的每个YARN容器直接对应一个“执行器”,即使YARN可能

scala - Spark 中的 Hadoop 配置

为了调试,我需要在我的Spark作业中获取当前的Hadooporg.apache.hadoop.conf.Configuration。具体来说,我需要使用org.apache.hadoop.fs.Path#getFileSystem(conf:Configuration)方法获取org.apache.hadoop.fs.FileSystem路径给定一个org.apache.spark.SparkContext,有没有办法获取Configuration? 最佳答案 您可以按照下面的代码设置配置sc.hadoopConfiguratio

scala - 使用 enableHiveSupport 创建临时 SparkSession

我正在研究连接到Hadoop中允许动态数据类型连接的数据。我需要能够连接到HiveThrift服务器A,提取一些数据,然后连接到HiveThrift服务器B并提取更多数据。据我了解,enableHiveSupport需要在初始SparkSession.builder上设置。有没有办法在事后添加/更改节俭连接?我遇到的唯一可能的解决方案是使用newSession():SparkSession但是我不确定这是否是我正在寻找的正确解决方案。我正在使用Spark2.1、Hadoop2.7 最佳答案 根据Spark权威指南一书,“创建[Spa

scala - 在 OSX 上安装本地 spark

我试图在我的本地机器(MacBookproosx10.13.3)上运行我的Scala作业,但我在运行时遇到错误。我的版本:scala:2.11.12Spark:2.3.0hadoop:3.0.0我通过brew安装了所有东西。异常(exception)是:引起:java.lang.StringIndexOutOfBoundsException:开始0,结束3,长度2发生在那些行:valconf=newSparkConf().setAppName(getName).setMaster("local[2]")valcontext=newSparkContext(conf)最后一行是抛出异常的

scala - 如何比较scala中的两个数据框

我有两个完全相同的数据帧用于比较测试df1------------------------------------------year|state|count2|count3|count4|2014|NJ|12332|54322|53422|2014|NJ|12332|53255|55324|2015|CO|12332|53255|55324|2015|MD|14463|76543|66433|2016|CT|14463|76543|66433|2016|CT|55325|76543|66433|------------------------------------------df2

scala - 如何有条件地从列中删除前两个字符

我有一些电话记录的以下数据,我想从每条记录中删除前两个值,因为它们是国家代码。我可以使用Scala执行此操作的方法是什么,Spark,或Hive?phone|917799423934||019331224595||8981251522||917271767899|我希望结果是:phone|7799423934||9331224595||8981251522||7271767899|我们如何从该列的每条记录或每行中删除前缀91,01? 最佳答案 手机大小可以不同,可以使用这样的构造(Scala):df.withColumn("phon