如何进行scala和java的混合开发打包?
首先创建maven项目,并在pom.xml中添加依赖关系
1.8
UTF-8
3.8.1
1.6.4
3.1
2.11.8
2.3.2
org.scala-lang
Scala -库
${scala.version}
org.slf4j
slf4j-api
${slf4j-api.version}
org.slf4j
slf4j-log4j12
1.7.25
org.apache.maven.plugins
最大合并计划
3.6.1
1.7
1.7
net.alchim31.maven
scala-maven-plugin
3.2.2
org.apache.maven.plugins
maven-jar-plugin
3.0.2
true
lib/
spark.example.Main
org.apache.maven.plugins
最大依赖计划
3.0.0
包
复制从属
${project.build.directory}/lib
其中mainClass是最后打包的jar包的主函数,通常是包含main方法的scala类。 不指定也没关系。
打包指令用mvncleanscala 3360 compile package
打包后,/lib子目录位于与jar相同的目录下,其中包含依赖的软件包,如scala-library-2.11.8.jar。
如果依赖的软件包位于其他目录中,请使用、
Java-DJ ava.ext.dirs=c :libs-jar my-snapshot.jar
请参阅。 其中-Djava.ext.dirs=c:libs指定了从属软件包路径c:libs,因此可以将其替换为您自己的目录。
(1)读取本地文件的示例
varfile=' c :\ github\ data\ spark data.txt '
val files RC=Scala.io.source.from file (file )
fileSrc.getLines ().foreach (println ) ) ) )。
)2) Spark样本
//*
*打印文件内容
*/
val conf=new SparkConf ().set appname (spark example ).setmaster ) ) local );
valsc=newsparkcontext(conf );
varfile=' file ://c :\ github\ data\ spark data.txt '
varfilerDD=sc.textfile(file,1 ) ) ) ) ) ) ) ) )。
println('#len: ',fileRdd.count ) )
日志级别控制
spark程序跑了很多日志,看了会很烦躁。 这里介绍简单的控制日志输出的方法
hadoop.root.logger=ERROR,console
log4j.rootLogger=ERROR,console
log4j.appender.console=org.Apache.log4j.console appender
log4j.appender.console.target=system.out
log4j.appender.console.layout=org.Apache.log4j.pattern layout
log4j.appender.console.layout.conversion pattern=% d { YY/mm/ddhh : mm 3360 ss } % p % c {2} : % m % n
# apache
log4j.logger.org.Apache.Hadoop.util.shell=off
其中,log4j.logger.org.Apache.Hadoop.util.shell=off控制不打印org.Apache.Hadoop.util.shell类的日志