欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Spark,Idea中编写Spark程序 2

Spark,Idea中编写Spark程序 2

2025/5/13 13:31:53 来源:https://blog.csdn.net/2401_87076425/article/details/147892064  浏览:    关键词:Spark,Idea中编写Spark程序 2

Idea中编写Spark程序

一、修改pom.xml文件

 
  1. <build>

  2. <sourceDirectory>src/main/scala</sourceDirectory>

  3. <testSourceDirectory>src/test/scala</testSourceDirectory>

  4. <!-- 添加必要的插件以打包scala程序-->

  5. <plugins>

  6. <plugin>

  7. <groupId>net.alchim31.maven</groupId>

  8. <artifactId>scala-maven-plugin</artifactId>

  9. <version>3.4.6</version>

  10. <executions>

  11. <execution>

  12. <goals>

  13. <goal>compile</goal>

  14. <goal>testCompile</goal>

  15. </goals>

  16. </execution>

  17. </executions>

  18. <configuration>

  19. <args>

  20. <arg>-dependencyfile</arg>

  21. <arg>${project.build.directory}/.scala_dependencies</arg>

  22. </args>

  23. </configuration>

  24. </plugin>

  25.  
  26. <plugin>

  27. <groupId>org.apache.maven.plugins</groupId>

  28. <artifactId>maven-shade-plugin</artifactId>

  29. <version>2.4.3</version>

  30. <executions>

  31. <execution>

  32. <phase>package</phase>

  33. <goals><goal>shade</goal></goals>

  34. </execution>

  35. </executions>

  36. <configuration>

  37. <filters>

  38. <filter>

  39. <artifact>*:*</artifact>

  40. <excludes>

  41. <exclude>META-INF/*.SF</exclude>

  42. <exclude>META-INF/*.DSA</exclude>

  43. <exclude>META-INF/*.RSA</exclude>

  44. </excludes>

  45. </filter>

  46. </filters>

  47. <transformers>

  48. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

  49. <mainClass></mainClass>

  50. </transformer>

  51. </transformers>

  52. </configuration>

  53. </plugin>

  54. </plugins>

  55. </build>

二、修改代码

修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。

 
  1. import org.apache.spark.{SparkConf, SparkContext}

  2.  
  3. object WordCount_online {

  4.  
  5. // 写一个spark程序,统计input目录下所有文本文件中单词的词频

  6. // 把结果保存在output下

  7. def main(args: Array[String]): Unit = {

  8. // println("hello spark!")

  9. // 配置 Spark 应用程序

  10. val conf = new SparkConf().setAppName("WordCount_online")

  11. // 创建 SparkContext 对象

  12. val sc = new SparkContext(conf)

  13.  
  14. // 读取目录下的所有文本文件

  15. val textFiles = sc.wholeTextFiles(args(0))

  16.  
  17. // 提取文本内容并执行 WordCount 操作

  18. val counts = textFiles

  19. .flatMap { case (_, content) => content.split("\\s+") }

  20. .map(word => (word, 1))

  21. .reduceByKey(_ + _)

  22.  
  23. // 将所有分区的数据合并成一个分区

  24. val singlePartitionCounts = counts.coalesce(1)

  25. // 保存结果到文件

  26. singlePartitionCounts.saveAsTextFile(args(1))

  27. // 停止 SparkContext

  28. sc.stop()

  29. }

  30. }

三、打包

四、上传到集群

命令为:[root@hadoop100 sbin]# spark-submit --class WordCount_online --master yarn /opt/module/original-untitled-1.0-SNAPSHOT.jar /wcinput /output1

出现结果如下即为运行成功

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词