0x00 文章内容
编写Scala代码
解决两个问题
一个工程里既写Java代码,又写Scala代码,这也是企业生产上的一个常用方式,因为以前的项目里面可能已经用Java写了很多代码,现在又要用上Scala代码,就要实现Java与Scala代码的混编。
现在我在以前的教程:Java API实现HDFS的相关操作 里面加上Scala代码,具体如下。
0x01 编写Scala代码
1. 引入Scala的SDK
a. 引入Scala的SDK
b. 编写一个简单的Spark词频统计案例的代码,如教程:
IntelliJ IDEA开发Spark案例之WordCount
2. 运行结果
a. 运行结果会报错
0x02 解决两个问题
1. 引入Scala插件
a. 在pom.xml文件的</project>
里面添加内容:
<build> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
b. 运行结果继续报错
Exception in thread "main" java.lang.SecurityException: class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in the same package
2. 排除依赖
a. 排除hadoop-client的javax.servlet,在<version>2.6.5</version>
下面添加:
<exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>*</artifactId> </exclusion> </exclusions>
b. 运行结果正确
0xFF 总结
- 人懒不想重新建工程的时候,也可以用上这个教程,你就承认自己懒吧啊哈。