
Scala与Spark
微电子学与固体电子学-俞驰
如切如磋,如琢如磨,臻于至善。
展开
-
大数据与web开发整合的最佳实践-思考
数据体系 web接口 OLTP数据库 Restful接口 OLAP数据库 WebSocket接口原创 2020-08-24 19:37:50 · 307 阅读 · 0 评论 -
can‘t resolve symbol xxx
本来不想记录这么基础的问题,肯定是没定义呗。如下图:所以两种情况会导致这种提示:①没有定义②定义了两次或者更多次原创 2020-08-16 14:07:49 · 708 阅读 · 0 评论 -
check your cluster UI to ensure that workers are registered and have sufficient resources
完整报错如下:WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources----------------------------------------------------------------------------------------原创 2020-08-15 20:23:00 · 1833 阅读 · 0 评论 -
Python+Scala+Java三种SparkContext初始化代码
-------------------------------------------------Python---------------------------------------------------from pyspark import SparkContextfrom pyspark import SparkConffrom pyspark.sql import SparkSessionfrom pyspark import SparkConf, SparkContextim原创 2020-08-14 16:40:33 · 1146 阅读 · 0 评论 -
scala常用spark的pom.xml与读取csv为rdd到最终join操作
这个问题其实本来没啥难度,不值得记录,但是因为join需要的是Array((),(),())这样的格式,而不是Array(Array(),Array(),Array())这样的格式,让问题瞬间有了一点点难度.--------------------------------------------------------------------------------------------------------------------------------------------------原创 2020-08-10 21:57:14 · 731 阅读 · 0 评论 -
scala中rdd无法join的问题
原始代码如下:import org.apache.spark.{SparkConf, SparkContext}import org.apache.log4j.{Level, Logger}object hello{ def main(args: Array[String]) { Logger.getLogger("org.apache.hadoop").setLevel(Level.WARN) Logger.getLogger("org.apache.spark")原创 2020-08-10 17:20:43 · 859 阅读 · 0 评论 -
intellij出现Initial job has not accepted any resources;
这种平时没事儿,然后突然出现的问题,肯定是spark集群的资源被其他sparkcontext占用,但是还没释放的。所以解决方案简单粗暴:直接重启spark集群(重启的时候也就是释放了集群资源),然后执行当前任务即可。...原创 2020-08-10 16:26:01 · 1289 阅读 · 3 评论 -
spark读取csv转化为rdd(python+scala+java三种代码汇总)
--------------------------------------------------------------------基本信息----------------------------------------------------------编程语言 运行方式 sc.textFile默认路径 Python pyspark hdfs:// Scala spark-shell hdfs:// Java Intellij file:原创 2020-08-05 23:02:33 · 3295 阅读 · 0 评论 -
Java spark中的各种范型接口Function的区别(持续更新中)
Class Function Type Function<T, R> T => R DoubleFunction<T> T => Double PairFunction<T, K, V> T => Tuple2<K, V> FlatMapFunction<T, R> T => Iterable<R> DoubleFlatMapFunction<T>原创 2020-08-04 15:24:04 · 801 阅读 · 0 评论 -
scala语言中抑制spark的info信息以及collect()输出对象名[Lscala.Tuple3;@889d9e8的问题
object _03SparkJoinDataSkewOps { def main(args: Array[String]): Unit = { Logger.getLogger("org.apache.hadoop").setLevel(Level.WARN) Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.project-spark")....原创 2020-08-04 13:22:53 · 422 阅读 · 0 评论 -
节点+Executor+Core+Task+Partition+RDD+job+DAG+stage+action算子之间的数量关系+两种并行度的区别
上面的Core与Task的默认对应关系是一对一,也可以通过.config("spark.task.cpus",1)修改.这个参数的意思是:为每个任务分配的内核数量上面图中的Core可以放大如下:action算子和job一对一。当然考虑优化的情况下,当然如果考虑优化的话,是可以多个算子对一个job的,因为被spark优化成一个了。stage的话一对多。task是线程池,所以core也是一个个执行task的,这样就和第一张图联系起来了。...原创 2020-08-04 13:08:44 · 442 阅读 · 0 评论 -
NoClassDefFoundError: org/apache/spark/api/java/function/PairFunction
Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/api/java/function/PairFunction at java.lang.Class.getDeclaredMethods0(Native Method) at ...原创 2020-08-03 12:45:53 · 933 阅读 · 0 评论 -
mapPartition方法与map方法的区别(转载)
算子 作用 map 应用于RDD中每个元素 mapPartitions 应用于每个分区 代码如下: //生成10个元素3个分区的rdd a,元素值为1~10的整数(1 2 3 4 5 6 7 8 9 10),sc为SparkContext对象 val a = sc.parallelize(1 to 10, 3) //定义两个输入变换函数,它们的作用均是将rdd a中的元素值翻倍 //map的输入函数,其参数e为rdd元素值 ...转载 2020-08-01 20:21:07 · 570 阅读 · 0 评论 -
判断一个算子是否会导致shuffle的方法
scala> val a = sc.parallelize(Array(1,2,3)).distincta: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[3] at distinct at <console>:24scala> a.toDebugStringres0: String =(16) MapPartitionsRDD[3] at distinct at <console>:24 []| S...转载 2020-08-01 18:27:48 · 415 阅读 · 0 评论 -
Exception in thread “main“ java.lang.NoClassDefFoundError: javax/script/Compilable
scala的交互模式启动时出现这个问题:完整报错如下:$scalaShell 传递参数实例!执行的文件名:/home/appleyuchi/scripts/scala/scala.shException in thread "main" java.lang.NoClassDefFoundError: javax/script/Compilable at scala.tools.nsc.interpreter.ILoop.createInterpreter(ILoop.scala:118)原创 2020-07-31 22:55:33 · 2946 阅读 · 0 评论 -
scala命令行运行spark代码
/home/appleyuchi/scripts/scala.sh#!/bin/bash# author:菜鸟教程# url:www.runoob.comecho "Shell 传递参数实例!";echo "执行的文件名:$0";#echo "第一个参数为:$1";#echo "第二个参数为:$2";#echo "第三个参数为:$3";scala -classpath .:$(echo *.jar $SPARK_HOME/jars/*.jar | tr ' ' ':') $1.原创 2020-07-30 19:45:46 · 820 阅读 · 0 评论 -
Python和Scala和Java的语法对照表(持续更新中)
List Python Scala 空List a = [] val a = List() //List[Nothing] Int a = [1,2,3,4,5] val a = List(1,2,3,4,5) String a = ["a", "b"] val a: List[String] = List("Hello", "World") 不同类型 a = [1,"Hello"] val a = List(1,...原创 2020-07-30 16:47:14 · 958 阅读 · 2 评论 -
20/07/30 15:35:02 WARN Utils: Service ‘sparkWorker‘ could not bind on a random free port.
$ startsparkorg.apache.spark.deploy.master.Master running as process 1067300. Stop it first.Desktop: org.apache.spark.deploy.worker.Worker running as process 1067817. Stop it first.Laptop: starting org.apache.spark.deploy.worker.Worker, logging to /..原创 2020-07-30 15:53:22 · 1273 阅读 · 0 评论 -
intellij连接真实spark集群运行wordcount-Java
#---------------------------------------------------------------------------------------------------------------------------------------这个实验注意哈如果是连接local模式的spark集群那随便搞。如果是连接真实集群,那么每个node中的spark版本必须和pom.xml中的spark相关版本一致。#------------------------------原创 2020-07-30 13:02:44 · 383 阅读 · 0 评论 -
java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field
在java连接集群的时候出错,完整报错如下:20/07/30 11:04:11 WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, 192.168.0.102, executor 0): java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field org.apache.spark.rdd.MapPartit原创 2020-07-30 12:50:28 · 8889 阅读 · 5 评论 -
Error: Could not find or load main class org.apache.spark.deploy.yarn.ExecutorLauncher
①查http://desktop:8088/cluster/scheduler中的进度条有没有爆满,如果爆满了是上次提交的任务没清除占用空间了,先释放再说②cd $SPARK_HOME_HOMEgrep -rspark.yarn.jarsconf/spark-defaults.conf:spark.yarn.jars hdfs://Desktop:9000/spark/jars/*.jarhdfs dfs -mkdir hdfs://Desktop:9000/sparkhdfs dfs .原创 2020-07-22 21:55:34 · 3725 阅读 · 0 评论 -
为什么说spark不稳定
下面的这篇文章,从14年9月11日被抄袭,一直抄到2020年+[1]里面有这么一句话:稳定性方面,由于代码质量问题,Spark长时间运行会经常出错,在架构方面,由于大量数据被缓存在内存中,Java垃圾回收缓慢的现象严重,导致Spark的性能不稳定,在复杂场景SQL的性能甚至不如现有的Map/Reduce。这句话直接被抄到了 知乎上面。那么这句话怎么回事呢?个人理解,因为spark初期使用的版本中,数据运算时spark占用了太多的内存,由于工程师没有对剩余内存做好余量预算,..原创 2020-06-12 17:44:38 · 1206 阅读 · 0 评论 -
为什么spark没有java的交互模式?
编程语言 交互模式命令 R sparkR Python pyspark Scala spark-shell 个人理解,R/Python/Scala的编程语言中都是有面向过程部分的,因为具备交互模式shell来实现逐句调试的功能。但是Java是纯面向对象语言,其语言体系中不存在面向过程的部分,因此不存在Spark-Java交互模式...原创 2020-05-31 12:10:27 · 416 阅读 · 0 评论 -
spark中各种数量的确定和查询(持续更新中)
数量 决定/设置方式 查询方式 partition数量 spark.createDataFrame(data).rdd.getNumPartitions task数量 executor数量 并发度 job数量 每次spark-submit/spark-shell提交任务就是一个job - stage数量 根据DAG依赖图来确定(其实还是根据代码来确定的) - ...原创 2020-05-13 19:18:05 · 1403 阅读 · 0 评论 -
scala的Vector输出有省略号的问题
scala> datares6: scala.collection.immutable.IndexedSeq[(Int, Int)] = Vector((1,1), (2,1), (3,1), (4,1), (5,1), (6,1), (7,1), (8,1), (9,1), (10,1), (11,1), (12,1), (13,1), (14,1), (15,1), (16,1), (17,1), (18,1), (19,1), (20,1), (21,1), (22,1), (23,1), (转载 2020-05-13 17:22:02 · 411 阅读 · 0 评论 -
spark的foreach(println)看不到输出结果
spark-shell--master yarn启动后,代码如下:scala> var rdd1=sc.makeRDD(1 to 4,2)scala> rdd1.foreach{x=>println(x+4)}scala> var rdd2=sc.makeRDD(1 to 12,3)scala> rdd2.foreachPartition{x=>println("--------------")}scala> rdd2.foreac...原创 2020-05-13 14:35:56 · 5225 阅读 · 0 评论 -
输出RDD中各个partition的内容
val rdd = sc.parallelize(1 to 8,3)rdd.mapPartitionsWithIndex{ (partid,iter)=>{ var part_map = scala.collection.mutable.Map[String,List[Int]]() var part_name = "part_" + partid part_map(part_name) = List[Int]() whi...转载 2020-05-13 10:45:30 · 389 阅读 · 0 评论 -
scala获得成员函数列表
scala> var rdd1=sc.parallelize(List((1,"a"),(4,"he"),(2,"b"),(3,"c")))scala> rdd1.lookup(4).getClass.getMethods.map(_.getName).sorted实验结果:res36: Array[String] = Array(hashCode, update, length, apply, apply, array, array, elemTag, last, clone,.转载 2020-05-10 21:34:50 · 356 阅读 · 0 评论 -
spark中各类key算子的用法汇总(持续更新中)
启动方式:spark-shell --master yarn具体代码:wordCountsWithReduce.collect()Transformation算子:算子操作前的变量 算子操作前的变量类型 算子 算子的作用 算子操作后,变量类型 变量打印结果 rdd1 org.apache.spark.rdd.ParallelCollectionRDD parallelize 数据读入RDD org.apache...原创 2020-05-09 18:21:26 · 781 阅读 · 0 评论 -
scala一些奇怪的操作符的效果(持续更新中)
scala符号或者变量 操作后效果 List (1,2,3) 4::list (4,1,2,3) list.:: (5) (5, 1, 2, 3) list :+ 6 (1, 2, 3, 6) list2 "A"+:"B"+:Nil list ::: list2 (1, 2, 3, A, B) list ++ list2 (1, 2, 3, A, B) 举例:object listTest { ...原创 2020-05-09 17:13:03 · 328 阅读 · 0 评论 -
Spark Streaming在Spark Web UI上的显示办法
下面开始注意:不要改变这个实验中各个步骤的顺序!!!启动spark集群和HDFS集群(搞不定的请自行百度)然后①$ nc -lk 9999testtesthomehomeschoolschoolschool②$ spark --master yarn粘贴代码如下:import org.apache.spark.{SparkContext,...原创 2020-05-08 16:55:23 · 1257 阅读 · 0 评论 -
Unknown/unsupported param List(--dist-cache-conf
升级spark后出现[1]中的报错官方论坛[1]中说是集群的spark版本和master的spark版本不一致。但是其实我的解决方案是:spark.yarn.jars hdfs://Desktop:9000/spark/jars/*.jar里面的jars依然是老版本的spark的jars.更新为新版本的spark的jars以后该报错问题消失Reference:[1]h...原创 2020-05-07 16:11:39 · 1687 阅读 · 1 评论 -
spark和hadoop升级记录(持续更新中)
昨晚从spark-2.3.1-bin-hadoop2.7升级到spark-3.0.0-preview2-bin-hadoop3.2基本结论是:/etc/hosts不用修改~/.bashrc中路径改下(就是和spark相关的,spark-2.3.1-bin-hadoop2.7改成spark-3.0.0-preview2-bin-hadoop3.2)export SPARK_LOCAL...原创 2020-05-07 12:23:44 · 679 阅读 · 0 评论 -
failed to launch: nice -n 0 $HADOOP_HOME/bin/spark-class org.apache.spark.deploy.worker.Worker
完整报错如下 :Laptop: failed to launch: nice -n 0 /home/appleyuchi/bigdata/spark-3.0.0-preview2-bin-hadoop3.2/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://Desktop:7077L...原创 2020-05-06 23:19:27 · 1288 阅读 · 0 评论 -
spark启动脚本报告No such file or directory
Laptop: bash: line 0: cd: /home/appleyuchi/bigdata/spark-3.0.0-preview2-bin-hadoop3.2: No such file or directoryLaptop: bash: /home/appleyuchi/bigdata/spark-3.0.0-preview2-bin-hadoop3.2/sbin/stop-...原创 2020-05-06 23:15:13 · 3866 阅读 · 0 评论 -
spark集群启动正常,但是提交任务后只有一个节点(slave/worker)参与集群计算
#-----------------------------环境如下----------------------------------------------------台式机hostname:Desktop笔记本hostname:Laptop#----------------------------------------------------------------------...原创 2020-05-06 16:02:40 · 3632 阅读 · 0 评论 -
failed to launch: nice -n 0 $SPARK_HOME/bin/spark-class org.apache.spark.deploy.worker.Worker
报错如下:$ startsparkorg.apache.spark.deploy.master.Master running as process 14542. Stop it first.Desktop: org.apache.spark.deploy.worker.Worker running as process 14710. Stop it first.Laptop: st...原创 2020-05-06 09:46:35 · 1768 阅读 · 1 评论 -
error: not found: value SparkSession
报错如下 :error: not found: value SparkSession解决方案:import org.apache.spark.sql.SparkSession转载 2020-05-05 21:36:11 · 3751 阅读 · 3 评论 -
TPC-H生成Spark测试用的伪数据集(转载)
下载地址:步骤如下:cd dbgen(从网盘中下载的话,可以省略此步骤)cp makefile.suite makefile(从网盘中下载的话,可以省略此步骤)sublmakefile(从网盘中下载的话,可以省略此步骤)make(从网盘中下载的话,可以省略此步骤)./dbgen -s 5([1]表示想要生成5G大小的数据集,但是实际生成似乎不是那么大,一般都会偏小)...原创 2020-05-05 20:17:25 · 1124 阅读 · 0 评论 -
Spark中Data skew(数据倾斜)Java+Python+Scala三种接口完整代码
---------------------------------------------------------起因----------------------------------------------------------------------代码中shuffle的算子存在的地方,groupByKey、countByKey、reduceByKey、join等----------...原创 2020-05-08 14:11:13 · 861 阅读 · 0 评论