1、Compile、Make和Build都是编译的过程,主要区别如下:
1)Compile:只编译选定的目标,不管之前是否已经编译过。
2)Make:编译选定的目标,但是Make只编译上次编译变化过的文件,减少重复劳动,节省时间。(
3)Build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。
**参考链接:https://blog.csdn.net/break1914/article/details/79524934
2、更新pom依赖文件内容后,需要在maven中刷新来下载依赖。如果有依赖相关的错误,根据错误提示在pom中添加最新版本的所需依赖包。
3、必须在project structure配置中的Libraries(Project settings)和Global Libraries(Platform settings ) 里加上scala sdk
4、必须在Project settings>>module>>Dependencies 里加上 scala sdk
5、必须在plugin里安装scala插件,企鹅需要和其他地方的scala版本一致。
6、本地模式的配置:
顶导航菜单Run>>edit configurations>>VM options 中填写"-Dspark.master=local[2] -Dspark.driver.memory=2g" 前者为core数 后者为分配内存数。
等价于//conf.setMaster("local") //Local Scala Spark RDD 即为本地模式
7、引入了新包后,或引入了新class后先compile install 再执行(???
8、Spark查看日志:Tracking URL: ApplicationMaster>>顶导executors
9、有时第一次运行时主类名不对 修改后再次运行时 因为上次的运行参数里默认的主类名不对 也会导致报错 需要修改运行的configurations
10、有时候会报 “找不到或无法加载主类”,可以通过删掉报错的object,rebuild工程解决。
11、spark 调用saveAsTextFile 报错NullPointerException
https://blog.csdn.net/u012447842/article/details/81111161
https://www.tuicool.com/articles/qy2iaai
12、【2019年8月16日16:46:42】
1)如果对String split的时候,string本身只有一个分割字符,那split的时候就会抛出数组索引0取不到的错误,形如
2)sc.parallelize及sc.makeRDD需要输入是一个seq,如果直接输入一个String,会map分为单个的字符!(坑。。)
3)IDeaJ 中maven可以通过控制profile参数调节打包的大小;在local中定义properties为<compile.scope>compile</compile.scope>,及在local选项下,会将依赖打到包里。在全局配置为 <compile.scope>provided</compile.scope>,即可在上传到spark时不打入预置的包。