草庐IT

scala-tools

全部标签

scala - 将工作分配给多个核心 : Hadoop or Scala's parallel collections?

在Scala/Hadoop系统中充分利用多核进行并行处理的更好方法是什么?假设我需要处理1亿份文档。文档不是很大,但处理它们是计算密集型的。如果我有一个包含100台机器的Hadoop集群,每台机器有10个内核,我可以:A)向每台机器发送1000个文档,让Hadoop在10个核心(或尽可能多的可用核心)中的每一个上启动一个映射或B)向每台机器发送1000个文档(仍然使用Hadoop)并使用Scala的并行集合来充分利用多核。(我会将所有文档放在一个并行集合中,然后对该集合调用map)。换句话说,使用Hadoop在集群级别进行分发,并使用并行集合来管理分发到每台机器内的核心。

scala - Hadoop 作业在 java.lang.ClassNotFoundException 上失败

我已经搜索过这个问题的解决方案,但无济于事。我有三个Scala类:MaxTemperatureMapper、MaxTemperatureReducer和MaxTemperatureDriver(请参阅下面的实现)。之前线程中的一些人删除了Main类(MaxTemperatureDriver)中的job.setJar()方法以使hadoop作业运行。那对我不起作用。运行时我继续收到以下堆栈跟踪:hadoopcom.koadr.hadoop.MaxTemperatureDrivermicro/sample.txt输出hadoopjartarget/classes/koadr-hadoop-

scala - spark sbt编译报错libraryDependencies

1.2.0-bin-hadoop2.4我的Scala版本是2.11.7。我收到一个错误,所以我不能使用sbt。~/sparksample$sbt启动sbt:使用-help调用其他选项[info]将当前项目设置为SparkSample(在构建文件中:/home/beyhan/sparksample/)>sbtcompile[info]正在更新{file:/home/beyhan/sparksample/}default-f390c8...[info]解析org.scala-lang#scala-library;2.11.7...[info]正在解决org.apache.spark#spa

scala - java.io.IOException : No FileSystem for scheme : hdfs 异常

我正在使用ClouderaQuickstartVMCDH5.3.0(就包裹包而言)和Spark1.2.0$SPARK_HOME=/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/spark并使用命令提交Spark应用./bin/spark-submit--class--masterspark://localhost.localdomain:7077--deploy-modeclient--executor-memory4G../apps/.jarSpark_App_Main_Class_Name.scalaimportorg.ap

hadoop - 问题 : Scala code in Spark shell to retrieve data from Hbase

我们正在尝试在Sparkshell中执行一个简单的Scala代码以从Hbase检索数据。Hadoop环境启用了Kerberos,我们已确保执行kinit。调用SparkShell的步骤:MASTER=yarn-clientDRIVER_CLASSPATH="/opt/cloudera/parcels/CDH/lib/hbase/lib/*"DRIVER_LIBRARY_PATH="/opt/cloudera/parcels/CDH/lib/hadoop/lib/native"spark-shell--driver-class-path"$DRIVER_CLASSPATH"--drive

scala - 从自定义数据格式创建 spark 数据框

我有一个文本文件,其中StringREC作为记录分隔符,换行符作为列分隔符,每个数据都附加了列名,以逗号作为分隔符,下面是示例数据格式录音编号,19048学期,牛奶排名,1录音编号,19049术语,Jade米排名,5使用REC作为记录分隔符。现在,我想创建带有列名ID、Term和Rank的spark数据框。请协助我。 最佳答案 这是工作代码importorg.apache.hadoop.conf.Configurationimportorg.apache.hadoop.io.{LongWritable,Text}importorg.

scala - 如何使用 Spark 独立集群在工作节点上管理多个执行程序?

到目前为止,我只在Hadoop集群上使用Spark,并将YARN作为资源管理器。在那种类型的集群中,我确切地知道要运行多少个执行程序以及资源管理是如何工作的。但是,知道我正在尝试使用独立的SparkCluster,我有点困惑。纠正我错误的地方。来自thisarticle,默认情况下,一个工作节点使用该节点的所有内存减去1GB。但我知道通过使用SPARK_WORKER_MEMORY,我们可以使用更少的内存。例如,如果节点的总内存为32GB,但我指定为16GB,那么Sparkworker不会在该节点上使用超过16GB的内存吗?但是执行者呢?假设我想在每个节点上运行2个执行程序,我可以通过在

scala - Spark 会使用此 sortByKey/map/collect 序列保留键顺序吗?

让我们说,我们有这个。valsx=sc.parallelize(Array((0,39),(4,47),(3,51),(1,98),(2,61)))我们后来称之为。valsy=sx.sortByKey(true)这会让sy=RDD[(0,39),(1,98),(2,61),(3,51),(4,47)]然后我们做collected=sy.map(x=>(x._2/10,x._2)).collect我们会一直得到以下信息吗?我的意思是,尽管更改了键值,是否会保留原始键顺序?collected=[(3,39),(9,98),(6,61),(5,51),(4,47)]

scala - 将 RDD[String] 转换为 RDD[Row] 到 Dataframe Spark Scala

我正在读取一个有很多空格的文件,需要过滤掉空格。之后我们需要将其转换为数据框。下面的示例输入。2017123¦¦10¦running¦00000¦111¦-EXAMPLE我的解决方案是使用以下函数来解析所有空格并修剪文件。deftruncateRDD(fileName:String):RDD[String]={valexample=sc.textFile(fileName)example.map(lines=>lines.replaceAll("""[\t\p{Zs}]+""",""))}但是,我不确定如何将它放入数据框中。sc.textFile返回一个RDD[String]。我尝试了

scala - Spark BigQuery 连接器 : Writing ARRAY type causes exception: ""Invalid value for: ARRAY is not a valid value""

在GoogleCloudDataproc中运行Spark作业。使用BigQueryConnector将作业输出的json数据加载到BigQuery表中。BigQueryStandard-SQLdatatypesdocumentation表示支持ARRAY类型。我的Scala代码是:valoutputDatasetId="mydataset"valtableSchema="["+"{'name':'_id','type':'STRING'},"+"{'name':'array1','type':'ARRAY'},"+"{'name':'array2','type':'ARRAY'},"+