草庐IT

scala-cats

全部标签

scala - spark Vectors 和 scala immutable Vector 之间的区别?

我正在Scala中为Spark1.4编写一个项目,目前正在将我的初始输入数据转换为spark.mllib.linalg.Vectors和scala.immutable.Vector我以后想在我的算法中使用它。有人可以简要解释一下两者之间的区别,以及在什么情况下使用一个比另一个更有用吗?谢谢。 最佳答案 spark.mllib.linalg.Vector专为线性代数应用而设计。mllib提供了两种不同的实现-DenseVector、SparseVector。虽然您可以使用norm或sqdist等有用的方法,但在其他方面却相当有限。由于

scala - 如何使用循环在 Spark-Scala 的 HDFS 中迭代多个文本文件?

我在集群中工作。我需要为HDFS中包含的每个文本文件运行相同的spark操作。但是我想在不从shell命令行为每个文件提交sparkjobshell-command的情况下这样做,因为文件数是90。我该怎么做?我的一个文件的代码结构如下:objectSparkGraphGen{defmain(args:Array[String]){valconf=newSparkConf().setMaster("yarn").setAppName("dataset")valsc=newSparkContext(conf)valsqlContext=neworg.apache.spark.sql.SQ

scala - 从源代码构建 Apache Spark 2.1.0 失败

我正在尝试构建ApacheSpark2.1.0源代码,但下面出现的这些错误令我感到困惑...Hadoop2.8.0已安装并正在运行在执行Spark安装之前安装了Scala2.12.1(这似乎会自动安装Scala2.11.8?!?)我的构建线是:build/mvn-Pyarn-Phadoop-2.7-Dhadoop.version=2.7.0-DskipTestscleanpackage有人知道我为什么得到:user@server:/usr/local/share/spark/spark-2.1.0$sudo/usr/local/share/spark/spark-2.1.0/build

scala - 在 Spark 中加入两个 HDFS 文件

我想使用sparkshell连接来自HDFS的两个文件。这两个文件都是制表符分隔的,我想加入第二列尝试过的代码但不给出任何输出valny_daily=sc.parallelize(List("hdfs://localhost:8020/user/user/NYstock/NYSE_daily"))valny_daily_split=ny_daily.map(line=>line.split('\t'))valenKeyValuePair=ny_daily_split.map(line=>(line(0).substring(0,5),line(3).toInt))valny_divid

scala - 合法代码在 Scalding 中无法编译

我正在Scalding中编写MapReduce作业,但在编译对我来说看起来完全合法的代码时遇到了困难。valpersistenceBins=List[Int](1000*60*60,2*1000*60*60,4*1000*60*60)valpersistenceValues=persistenceBins.map(bin:Int=>(bin,getPersistenceValues(connections,bin)))连接是RichPipe。getPersistenceValues定义在与上述代码相同的类中,如:defgetPersistenceValues(connections:R

regex - 如何使用正则表达式在 Scala 中过滤掉字母数字字符串

我想从我的文件中过滤掉字母数字和数字单词。我正在研究Spark-Shell。这些是我的文件sparktest.txt的内容:Thisis1filenot54783.Wouldyoul1kethisfiletobeWritt3ntoHDFS?定义收集文件:scala>valmyLines=sc.textFile("sparktest.txt")将行存入一个长度大于2的单词数组:scala>valmyWords=myLines.flatMap(x=>x.split("\\W+")).filter(x=>x.length>2)定义要使用的正则表达式。我只想要匹配“[A-Za-z]+”的字符串

scala - 在 Spark 中保存文件

对RDD的保存有两个操作。一个是saveAsTextFile,另一个是saveAsObjectFile。我理解saveAsTextFile,但不理解saveAsObjectFile。我是Spark和scala的新手,因此我对saveAsObjectFile感到好奇。1)它是来自Hadoop的序列文件还是其他东西?2)我可以使用MapReduce读取那些使用saveAsObjectFile生成的文件吗?如果是,如何? 最佳答案 saveAsTextFile()-将RDD保存为压缩文本文件,使用元素的字符串表示。它利用Hadoop的Te

scala - 如何格式化 saveAsTextFile 的输出?

我正在研究Scala中的ETL过程。我的原始日志文件有很多列(大约70列)。我尝试使用Row()对象将其保存到文件中:valbase_RDD=rawData.map{r=>if(r(13)==null||r(13).trim.isEmpty)Row(r(2),r(3),r(4),"",r(6),r(7),r(8),r(9),r(10),r(11),r(12),r(13),r(14),r(15),r(16),r(18),r(21),r(27),r(29),r(30),r(32),r(33),r(34),r(35),r(36),r(37),r(38),r(39),r(40),r(41),r

scala - 当您在 RDD 之外的 Spark 中执行 Java 数据操作时会发生什么

我正在使用Spark从hdfs读取一个csv文件。它进入一个FSDataInputStream对象。我不能使用textfile()方法,因为它按换行符拆分csv文件,而我正在读取文本字段内有换行符的csv文件。来自sourcefourge的Opencsv处理单元格内的换行,这是一个不错的项目,但它接受Reader作为输入。我需要将它转换为字符串,以便我可以将它作为StringReader传递给opencsv。因此,HDFSFile->FSdataINputStream->String->StringReader->一个opencsv字符串列表。下面是代码...importjava.io

scala - HDFS 文件互斥写入?

基本上,在我的程序中,任务将附加到HDFS文件。但是,我不希望两个任务同时附加文件。有没有一种机制,我只有一个任务附加到HDFS文件。基本上是一种互斥机制。我在创建文件时也需要这样的互斥。 最佳答案 据我所知,您不能让多个处理程序写入同一个HDFS文件。这不是Spark的限制,这正是HDFS的设计方式。在HDFS中,文件是不可变的。每个文件只有一个编写器,关闭后没有追加。这对于大数据和Spark来说非常有用,因为您始终知道同一个文件会产生相同的数据。在Hadoop中解决这个问题的方法是让每个编写者编写自己的文件,然后有一个最终的Ma