您现在的位置是:首页 >技术教程 >分布式课程——踩坑记录_2网站首页技术教程

分布式课程——踩坑记录_2

csdg 2024-06-17 10:48:33
简介分布式课程——踩坑记录_2

Q1: 新建Scala类时点击New没有Scala class出现

点击new时未出现Scala class是因为Scala相关配置未导入

可通过如下操作导入Scala配置:依次点击“File”——“Project Structure”——“Platform Settings”下的“Global Libraries”,右键选中中栏中的scala-sdk-2.11.12,选中“Add to Modules...”,随后在弹出来的界面选择“OK”,最后点击右下角“Apply”、“OK”即可。

可以成功new scala class了

Q2:  No tests were found

运行Spark项目时显示没有找到测试模块,edit configuration后依然没用

step 1: 运行maven - Lifecycle - clean

运行完报错```Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M2:enforce (enforce-banned-dependencies) on project DSPP_Exercise: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.``` 

根据报错这是enforce插件检测规则失败,

enforcer插件的作用: 对环境进行约束和检查

step 2: 进到源码的根目录下,找到pom.xml文件,打开它,找到maven-enforcer-plugin所在位置

如图,只有对规则校验的约束,那么设置规则校验失败不影响构建流程即可,将true改为false

 运行成功

编程

数据类型的转换(使用scala编写)

parallelInput.rdd.map().reduce()  // parallelInput为JavaRDD[Integer]类型

我们首先使用 rdd 方法将 JavaRDD[Integer] 类型的对象转换为 RDD[Integer] 类型的对象,然后使用 map() 方法将其转换为 RDD[Int] 类型的对象。如果使用reduce()使会将`RDD[Int]`转换为`Int`型数据。

如果要得到`JavaRDD[Integer]`的数据类型应该先使用`map()`方法将`RDD[Int]`转化为`RDD[Integer]`,再使用`JavaRDD.fromRDD()`将`RDD[Integer]`转化为`JavaRDD[Integer]`,操作如下

val outputCount = count.map(Integer.valueOf(_))  // 将RDD[Int]转化为RDD[Integer]
JavaRDD.fromRDD(outputCount: RDD[Integer])  // 将RDD[Integer]转化为JavaRDD[Integer]

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。