草庐IT

language-scala

全部标签

scala - Spark Streaming迭代算法

我想创建一个用Scala编码的SparkStreaming应用程序。我希望我的应用程序:逐行读取HDFS文本文件将每一行分析为字符串,如果需要修改它,并且:将分析所需的状态保存在某种数据结构中(可能是哈希)在文本文件(任何类型)上输出所有内容我在第一步中没有遇到任何问题:vallines=ssc.textFileStream("hdfs://localhost:9000/path/")我的分析包括在Hashes中搜索匹配项以查找分析的String的某些字段,这就是为什么我需要维护状态并迭代地执行该过程。这些Hashes中的数据也是通过分析的字符串提取出来的。下一步我能做什么?

java - 如何从 Java/Scala 读取 Nutch 内容?

我正在使用Nutch来抓取一些网站(作为一个独立于其他一切运行的进程),同时我想使用Java(Scala)程序来分析使用Jsoup的网站的HTML数据。我通过遵循tutorial让Nutch开始工作(没有脚本,只有执行单独的指令有效),我认为它将网站的HTML保存在crawl/segments//content/part-00000中目录。问题是我不知道如何在Java/Scala程序中实际读取网站数据(URL和HTML)。我读了这个document,但由于我从未使用过Hadoop,所以觉得有点不知所措。我尝试使示例代码适应我的环境,这就是我的结果(主要是通过guesswprk):val

scala - Apache Spark 中的转换和操作

我有scala代码,它使用通配符从HDFS获取多个输入文件,每个文件都进入一个函数,在该函数中对每个文件单独进行处理。importde.l3s.boilerpipe.extractors.KeepEverythingExtractorvaldata=sc.wholeTextFiles("hdfs://localhost:port/akshat/folder/*/*")valfiles=data.map{case(filename,content)=>filename}defdoSomething(file:String):(String,String)={//logicofproces

scala - 在 Hadoop 上使用 Spark 运行 Scala 程序

我已经创建了一个在文本文件中搜索单词的Scala程序。我用eclipse创建文件scala,然后用sbt和sbtassembly编译并创建一个jar。之后我在本地运行带有Spark的.jar并且它运行正确。现在我想尝试在hadoop上使用Spark运行这个程序,我有1台主机和2台工作机。我必须更改代码?我用主人的外壳做什么命令?我创建了一个存储桶,并将文本文件放入hadoop这是我的代码:importscala.io.Sourceimportorg.apache.spark.SparkContextimportorg.apache.spark.SparkContext._importo

scala - 下面的热烫预处理和后处理将在哪个hadoop节点上运行?

我有下面的example代码,用于在slading作业运行之前进行一些预处理和一些后处理。由于这些预处理和后处理正在调用一些mysql数据库,我想知道hadoop可能会在哪些hadoop节点上运行它们?(我需要打开从这些节点到数据库的端口)它可以运行任何hadoopdata-node的预处理和后处理吗?我尝试做一些研究但找不到任何迹象,如何通过文档/来源找到它将在哪个节点上运行?(PS工作安排在oozie)preProcessingBeforeJobRuns()//**inwhichhadoopnodewouldthisberun?coulditrunonanydatanode?**l

hadoop - Spark Standalone 与 python 和 scala 的行为不同

我正在探索Spark,发现与SparkStandalone(简称SS)不一致。这里有一些关于我的集群的线索:d125.dtvhadooptest->最佳数据节点d124.dtvhadooptestd211.dtvhadooptest->最差数据节点我正在通过python和scala运行完全相同的作业。当作业作为python脚本提交时,SS在执行程序进程之间几乎平等地共享任务。但是,当作业作为scala脚本提交时,SS会异构地共享任务。我想截图会更好地解释它:python:斯卡拉:使用scala,作业运行速度明显加快(大约55分钟)。使用python时,大约90分钟即可完成作业。我认为造

scala - 使用 Spark 从目录中读取多个文件

我正在尝试解决这个问题problem在kaggle使用spark:输入的层次结构是这样的:drivers/{driver_id}/trip#.csve.g.,drivers/1/1.csvdrivers/1/2.csvdrivers/2/1.csv我想读取父目录"drivers",对于每个子目录,我想创建一个pairRDD,键为(sub_directory,file_name)和值作为文件的内容我检查了this链接并尝试使用valtext=sc.wholeTextFiles("drivers")text.collect()失败并出现错误:java.lang.ArrayIndexOutO

java - Spark Java scala 错误

嘿,我想在我的Java项目中使用spark:我已经将此依赖项添加到我的pom文件中:org.apache.sparkspark-core_2.111.4.0我试过这段代码:importorg.apache.spark.api.java.JavaSparkContext;publicclasssparkSQL{publicvoidquery(){JavaSparkContextsc=newJavaSparkContext();}}我在我的main中调用了这个函数,但我得到了这个错误:Exceptioninthread"main"java.lang.NoClassDefFoundError

scala - Spark : how to include dependencies with build/sbt compile

我是spark的新手,但正在尝试进行一些开发。我正在遵循thesparkdeveloperpage中的“减少构建时间”说明.创建正常程序集后,我编写了一些依赖于一个特定jar的类。我在spark-shell中测试了我的包,通过定义SPARK_CLASSPATH,我已经能够在其中包含我的jar,但问题在于实际编译我的代码。我想要实现的是在编译我添加的包时包含那个jar(使用build/sbtcompile)。我可以通过在build/sbt文件或sbt-launch-lib.bash中添加我的jar路径来做到这一点吗?如果可以的话,怎么做?(旁注:我还不想将jar包含在程序集中,因为我对它

scala - Spark : how to zip an RDD with each partition of the other RDD

假设我有一个RDD[U],它总是只包含1个分区。我的任务是用位于n个分区上的另一个RDD[T]的内容填充这个RDD。最终输出应该是RDD[U]的n个分区。我最初尝试做的是:valnewRDD=firstRDD.zip(secondRDD).map{case(a,b)=>a.insert(b)}但是我得到一个错误:Can'tzipRDDswithunequalnumbersofpartitions我可以在RDDapi中看到documentation有一个名为zipPartitions()的方法。是否有可能,如果可以,如何使用此方法将RDD[T]中的每个分区压缩为RDD[U]的单个分区并执