Spark根本入门

[复制链接]
发表于 2026-2-21 06:51:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
spark根本入门

   
       
  • 情况搭建
           
    • local     
    • standlone     
    • spark ha   
       
  • spark code
           
    • spark core     
    • spark sql     
    • spark streaming   
       
  情况搭建

准备工作

创建安装目次

  1. mkdir /opt/soft
  2. cd /opt/soft
复制代码
下载scala

  1. wget https://downloads.lightbend.com/scala/2.13.14/scala-2.13.14.tgz -P /opt/soft
复制代码
解压scala

  1. tar -zxvf scala-2.13.14.tgz
复制代码
修改scala目次名称

  1. mv scala-2.13.14 scala-2
复制代码
下载spark

  1. wget https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3-scala2.13.tgz -P /opt/soft
复制代码
解压spark

  1. tar -zxvf spark-3.5.1-bin-hadoop3-scala2.13.tgz
复制代码
修改目次名称

  1. mv spark-3.5.1-bin-hadoop3-scala2.13 spark-3
复制代码
修改情况遍历

  1. vim /etc/profile.d/my_env.sh
复制代码
  1. export JAVA_HOME=/opt/soft/jdk-8
  2. export ZOOKEEPER_HOME=/opt/soft/zookeeper-3
  3. export HDFS_NAMENODE_USER=root
  4. export HDFS_SECONDARYNAMENODE_USER=root
  5. export HDFS_DATANODE_USER=root
  6. export HDFS_ZKFC_USER=root
  7. export HDFS_JOURNALNODE_USER=root
  8. export HADOOP_SHELL_EXECNAME=root
  9. export YARN_RESOURCEMANAGER_USER=root
  10. export YARN_NODEMANAGER_USER=root
  11. export HADOOP_HOME=/opt/soft/hadoop-3
  12. export HADOOP_INSTALL=$HADOOP_HOME
  13. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  14. export HADOOP_COMMON_HOME=$HADOOP_HOME
  15. export HADOOP_HDFS_HOME=$HADOOP_HOME
  16. export YARN_HOME=$HADOOP_HOME
  17. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  18. export HBASE_HOME=/opt/soft/hbase-2
  19. export PHOENIX_HOME=/opt/soft/phoenix
  20. export HIVE_HOME=/opt/soft/hive-3
  21. export HCATALOG_HOME=/opt/soft/hive-3/hcatalog
  22. export HCAT_HOME=/opt/soft/hive-3/hcatalog
  23. export SQOOP_HOME=/opt/soft/sqoop-1
  24. export FLUME_HOME=/opt/soft/flume
  25. export SCALA_HOME=/opt/soft/scala-2
  26. export SPARK_HOME=/opt/soft/spark-3
  27. export SPARKPYTHON=/opt/soft/spark-3/python
  28. export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$PHOENIX_HOME/bin:$HIVE_HOME/bin:$HCATALOG_HOME/bin:$HCATALOG_HOME/sbin:$HCAT_HOME/bin:$SQOOP_HOME/bin:$FLUME_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$SPARKPYTHON
复制代码
  1. source /etc/profile
复制代码
Local模式

scala java

启动

  1. spark-shell
复制代码

页面所在:http://spark01:4040


退出

  1. :quit
复制代码

pyspark


启动

  1. pyspark
复制代码

页面所在:http://spark01:4040


退出

  1. quit() or Ctrl-D
复制代码

当地模式提交应用

   在spark目次下实行
  1. bin/spark-submit \
  2. --class org.apache.spark.examples.SparkPi \
  3. --master local[4] \
  4. ./examples/jars/spark-examples_2.13-3.5.0.jar \
  5. 10
复制代码
  
       
  • –class表现要实行步调的主类,此处可以更换为咱们自己写的应用步调   
  • –master local[2] 摆设模式,默以为当地模式,数字表现分配的假造CPU核数量   
  • spark-examples_2.13-3.5.0.jar 运行的应用类所在的jar包,现实利用时,可以设定为咱们自己打的jar包   
  • 数字10表现步调的入口参数,用于设定当前应用的任务数量  
  Standalone模式

编写核心设置文件

   cont目次下
  1. cd /opt/soft/spark-3/conf
复制代码
  1. cp spark-env.sh.template spark-env.sh
复制代码
  1. vim spark-env.sh
复制代码
  1. export JAVA_HOME=/opt/soft/jdk-8
  2. export HADOOP_HOME=/opt/soft/hadoop-3
  3. export HADOOP_CONF_DIR=/opt/soft/hadoop-3/etc/hadoop
  4. export JAVA_LIBRAY_PATH=/opt/soft/hadoop-3/lib/native
  5. export SPARK_DIST_CLASSPATH=$(/opt/soft/hadoop-3/bin/hadoop classpath)
  6. export SPARK_MASTER_HOST=spark01
  7. export SPARK_MASTER_PORT=7077
  8. export SPARK_WORKER_MEMORY=4g
  9. export SPARK_WORKER_CORES=4
  10. export SPARK_MASTER_WEBUI_PORT=6633
复制代码
编辑slaves

  1. cp workers.template workers
复制代码
  1. vim workers
复制代码
  1. spark01
  2. spark02
  3. spark03
复制代码
设置汗青日志日志

  1. cp spark-defaults.conf.template spark-defaults.conf
复制代码
  1. vim spark-defaults.conf
复制代码
  1. spark.eventLog.enabled           true
  2. spark.eventLog.dir               hdfs://lihaozhe/spark-log
复制代码
  1. hdfs dfs -mkdir /spark-log
复制代码
  1. vim spark-env.sh
复制代码
  1. export SPARK_HISTORY_OPTS="
  2. -Dspark.history.ui.port=18080
  3. -Dspark.history.retainedApplications=30
  4. -Dspark.history.fs.logDirectory=hdfs://lihaozhe/spark-log"
复制代码
修改启动文件名称

  1. mv sbin/start-all.sh sbin/start-spark.sh
  2. mv sbin/stop-all.sh sbin/stop-spark.sh
复制代码
分发搭配其他节点

  1. scp -r /opt/soft/spark-3 root@spark02:/opt/soft
  2. scp -r /opt/soft/spark-3 root@spark03:/opt/soft
复制代码
  1. scp /etc/profile.d/my_env.sh root@spark02:/etc/profile.d
  2. scp /etc/profile.d/my_env.sh  root@spark03:/etc/profile.d
复制代码
  在别的节点革新情况遍历
  1. source /etc/profile
复制代码
启动

  1. start-spark.sh
  2. start-history-server.sh
复制代码
webui

   http://spark01:6633
  

   http://spark01:18080
  

提交作业到集群

  1. spark-submit \
  2. --class org.apache.spark.examples.SparkPi \
  3. --master spark://spark01:7077 \
  4. ./examples/jars/spark-examples_2.13-3.5.0.jar \
  5. 10
复制代码
提交作业到Yarn

  1. spark-submit \
  2. --master yarn \
  3. --class  org.apache.spark.examples.SparkPi \
  4. ./examples/jars/spark-examples_2.13-3.5.0.jar \
  5. 10
复制代码
HA模式

编写核心设置文件

   cont目次下
  1. cd /opt/soft/spark-3/conf
复制代码
  1. cp spark-env.sh.template spark-env.sh
复制代码
  1. vim spark-env.sh
复制代码
  1. export JAVA_HOME=/opt/soft/jdk-8
  2. export HADOOP_HOME=/opt/soft/hadoop-3
  3. export HADOOP_CONF_DIR=/opt/soft/hadoop-3/etc/hadoop
  4. export JAVA_LIBRAY_PATH=/opt/soft/hadoop-3/lib/native
  5. export SPARK_DIST_CLASSPATH=$(/opt/soft/hadoop-3/bin/hadoop classpath)
  6. SPARK_DAEMON_JAVA_OPTS="
  7. -Dspark.deploy.recoveryMode=ZOOKEEPER
  8. -Dspark.deploy.zookeeper.url=spark01:2181,spark02:2181,spark03:2181
  9. -Dspark.deploy.zookeeper.dir=/spark"
  10. export SPARK_WORKER_MEMORY=8g
  11. export SPARK_WORKER_CORES=8
  12. export SPARK_MASTER_WEBUI_PORT=6633
复制代码
编辑slaves

  1. cp workers.template workers
复制代码
  1. vim workers
复制代码
  1. spark01
  2. spark02
  3. spark03
复制代码
设置汗青日志日志

  1. cp spark-defaults.conf.template spark-defaults.conf
复制代码
  1. vim spark-defaults.conf
复制代码
  1. spark.eventLog.enabled           true
  2. spark.eventLog.dir               hdfs://lihaozhe/spark-log
复制代码
  1. hdfs dfs -mkdir /spark-log
复制代码
  1. vim spark-env.sh
复制代码
  1. export SPARK_HISTORY_OPTS="
  2. -Dspark.history.ui.port=18080
  3. -Dspark.history.retainedApplications=30
  4. -Dspark.history.fs.logDirectory=hdfs://lihaozhe/spark-log"
复制代码
修改启动文件名称

  1. mv sbin/start-all.sh sbin/start-spark.sh
  2. mv sbin/stop-all.sh sbin/stop-spark.sh
复制代码
分发搭配其他节点

  1. scp -r /opt/soft/spark-3 root@spark02:/opt/soft
  2. scp -r /opt/soft/spark-3 root@spark03:/opt/soft
复制代码
  1. scp /etc/profile.d/my_env.sh root@spark02:/etc/profile.d
  2. scp /etc/profile.d/my_env.sh  root@spark03:/etc/profile.d
复制代码
  在别的节点革新情况遍历
  1. source /etc/profile
复制代码
启动

  1. start-spark.sh
  2. start-history-server.sh
复制代码
webui

   http://spark01:6633
  

   http://spark01:18080
  

提交作业到集群

  1. spark-submit \
  2. --class org.apache.spark.examples.SparkPi \
  3. --master spark://spark01:7077 \
  4. ./examples/jars/spark-examples_2.13-3.5.0.jar \
  5. 10
复制代码
提交作业到Yarn

  1. spark-submit --master yarn \
  2. --class  org.apache.spark.examples.SparkPi \
  3. ./examples/jars/spark-examples_2.13-3.5.0.jar 10
复制代码
spark-code

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.   <modelVersion>4.0.0</modelVersion>
  6.   <groupId>com.lihaozhe</groupId>
  7.   <artifactId>spark-code</artifactId>
  8.   <version>1.0.0</version>
  9.   <properties>
  10.     <jdk.version>8</jdk.version>
  11.     <maven.compiler.target>8</maven.compiler.target>
  12.     <maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>
  13.     <maven.compiler.encoding>utf-8</maven.compiler.encoding>
  14.     <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
  15.     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  16.     <maven.test.failure.ignore>true</maven.test.failure.ignore>
  17.     <maven.test.skip>true</maven.test.skip>
  18.     <spark.version>3.5.1</spark.version>
  19.     <commons-dbutils.version>1.8.1</commons-dbutils.version>
  20.     <commons-io.version>2.14.0</commons-io.version>
  21.     <commons-lang3.version>3.14.0</commons-lang3.version>
  22.     <druid.version>1.2.23</druid.version>
  23.     <fastjson.version>2.0.51</fastjson.version>
  24.     <fastjson2.version>2.0.51</fastjson2.version>
  25.     <gson.version>2.11.0</gson.version>
  26.     <hadoop.version>3.3.6</hadoop.version>
  27.     <hive.version>3.1.3</hive.version>
  28.     <java-testdata-generator.version>1.1.2</java-testdata-generator.version>
  29.     <hutool.version>5.8.29</hutool.version>
  30.     <jackson.version>2.17.2</jackson.version>
  31.     <junit.version>5.10.3</junit.version>
  32.     <lombok.version>1.18.34</lombok.version>
  33.     <mysql.version>8.4.0</mysql.version>
  34.     <scala.version>2.13.14</scala.version>
  35.   </properties>
  36.   <dependencies>
  37.     <dependency>
  38.       <groupId>org.scala-lang</groupId>
  39.       <artifactId>scala-library</artifactId>
  40.       <version>${scala.version}</version>
  41.     </dependency>
  42.     <dependency>
  43.       <groupId>org.scala-lang</groupId>
  44.       <artifactId>scala-compiler</artifactId>
  45.       <version>${scala.version}</version>
  46.     </dependency>
  47.     <dependency>
  48.       <groupId>com.github.binarywang</groupId>
  49.       <artifactId>java-testdata-generator</artifactId>
  50.       <version>${java-testdata-generator.version}</version>
  51.     </dependency>
  52.     <!-- spark-core -->
  53.     <dependency>
  54.       <groupId>org.apache.spark</groupId>
  55.       <artifactId>spark-core_2.13</artifactId>
  56.       <version>${spark.version}</version>
  57.     </dependency>
  58.     <dependency>
  59.       <groupId>org.apache.spark</groupId>
  60.       <artifactId>spark-sql_2.13</artifactId>
  61.       <version>${spark.version}</version>
  62.     </dependency>
  63.     <dependency>
  64.       <groupId>org.apache.spark</groupId>
  65.       <artifactId>spark-streaming_2.13</artifactId>
  66.       <version>${spark.version}</version>
  67.     </dependency>
  68.     <dependency>
  69.       <groupId>org.apache.spark</groupId>
  70.       <artifactId>spark-hive_2.13</artifactId>
  71.       <version>${spark.version}</version>
  72.     </dependency>
  73.     <dependency>
  74.       <groupId>org.apache.spark</groupId>
  75.       <artifactId>spark-streaming-kafka-0-10_2.13</artifactId>
  76.       <version>${spark.version}</version>
  77.     </dependency>
  78.     <!-- junit-jupiter-api -->
  79.     <dependency>
  80.       <groupId>org.junit.jupiter</groupId>
  81.       <artifactId>junit-jupiter-api</artifactId>
  82.       <version>${junit.version}</version>
  83.       <scope>test</scope>
  84.     </dependency>
  85.     <!-- junit-jupiter-engine -->
  86.     <dependency>
  87.       <groupId>org.junit.jupiter</groupId>
  88.       <artifactId>junit-jupiter-engine</artifactId>
  89.       <version>${junit.version}</version>
  90.       <scope>test</scope>
  91.     </dependency>
  92.     <dependency>
  93.       <groupId>org.projectlombok</groupId>
  94.       <artifactId>lombok</artifactId>
  95.       <version>${lombok.version}</version>
  96.     </dependency>
  97.     <dependency>
  98.       <groupId>org.apache.logging.log4j</groupId>
  99.       <artifactId>log4j-slf4j2-impl</artifactId>
  100.       <version>2.23.1</version>
  101.     </dependency>
  102.     <dependency>
  103.       <groupId>org.apache.logging.log4j</groupId>
  104.       <artifactId>log4j-core</artifactId>
  105.       <version>2.23.1</version>
  106.     </dependency>
  107.     <dependency>
  108.       <groupId>org.slf4j</groupId>
  109.       <artifactId>slf4j-api</artifactId>
  110.       <!--<version>1.7.36</version>-->
  111.       <version>2.0.13</version>
  112.     </dependency>
  113.     <dependency>
  114.       <groupId>org.apache.hadoop</groupId>
  115.       <artifactId>hadoop-client</artifactId>
  116.       <version>${hadoop.version}</version>
  117.     </dependency>
  118.     <dependency>
  119.       <groupId>org.apache.hive</groupId>
  120.       <artifactId>hive-jdbc</artifactId>
  121.       <version>${hive.version}</version>
  122.     </dependency>
  123.     <dependency>
  124.       <groupId>org.apache.commons</groupId>
  125.       <artifactId>commons-lang3</artifactId>
  126.       <version>${commons-lang3.version}</version>
  127.     </dependency>
  128.     <dependency>
  129.       <groupId>commons-io</groupId>
  130.       <artifactId>commons-io</artifactId>
  131.       <version>${commons-io.version}</version>
  132.     </dependency>
  133.     <dependency>
  134.       <groupId>com.mysql</groupId>
  135.       <artifactId>mysql-connector-j</artifactId>
  136.       <version>${mysql.version}</version>
  137.     </dependency>
  138.   </dependencies>
  139.   <build>
  140.     <finalName>${project.artifactId}</finalName>
  141.     <!--<outputDirectory>../package</outputDirectory>-->
  142.     <plugins>
  143.       <plugin>
  144.         <groupId>org.apache.maven.plugins</groupId>
  145.         <artifactId>maven-compiler-plugin</artifactId>
  146.         <version>3.13.0</version>
  147.         <configuration>
  148.           <!-- 设置编译字符编码 -->
  149.           <encoding>UTF-8</encoding>
  150.           <!-- 设置编译jdk版本 -->
  151.           <source>${jdk.version}</source>
  152.           <target>${jdk.version}</target>
  153.         </configuration>
  154.       </plugin>
  155.       <plugin>
  156.         <groupId>org.apache.maven.plugins</groupId>
  157.         <artifactId>maven-clean-plugin</artifactId>
  158.         <version>3.4.0</version>
  159.       </plugin>
  160.       <plugin>
  161.         <groupId>org.apache.maven.plugins</groupId>
  162.         <artifactId>maven-resources-plugin</artifactId>
  163.         <version>3.3.1</version>
  164.       </plugin>
  165.       <plugin>
  166.         <groupId>org.apache.maven.plugins</groupId>
  167.         <artifactId>maven-war-plugin</artifactId>
  168.         <version>3.4.0</version>
  169.       </plugin>
  170.       <plugin>
  171.         <groupId>org.apache.maven.plugins</groupId>
  172.         <artifactId>maven-jar-plugin</artifactId>
  173.         <version>3.4.2</version>
  174.       </plugin>
  175.       <!-- 编译级别 -->
  176.       <!-- 打包的时候跳过测试junit begin -->
  177.       <plugin>
  178.         <groupId>org.apache.maven.plugins</groupId>
  179.         <artifactId>maven-surefire-plugin</artifactId>
  180.         <version>3.3.0</version>
  181.         <configuration>
  182.           <skip>true</skip>
  183.         </configuration>
  184.       </plugin>
  185.       <!-- 该插件用于将Scala代码编译成class文件 -->
  186.       <plugin>
  187.         <groupId>net.alchim31.maven</groupId>
  188.         <artifactId>scala-maven-plugin</artifactId>
  189.         <version>4.9.2</version>
  190.         <configuration>
  191.           <scalaCompatVersion>${scala.version}</scalaCompatVersion>
  192.           <scalaVersion>${scala.version}</scalaVersion>
  193.         </configuration>
  194.         <executions>
  195.           <execution>
  196.             <id>scala-compile-first</id>
  197.             <phase>process-resources</phase>
  198.             <goals>
  199.               <goal>compile</goal>
  200.             </goals>
  201.           </execution>
  202.           <execution>
  203.             <goals>
  204.               <goal>testCompile</goal>
  205.             </goals>
  206.           </execution>
  207.           <execution>
  208.             <id>compile-scala</id>
  209.             <phase>compile</phase>
  210.             <goals>
  211.               <goal>add-source</goal>
  212.               <goal>compile</goal>
  213.             </goals>
  214.           </execution>
  215.           <execution>
  216.             <id>test-compile-scala</id>
  217.             <phase>test-compile</phase>
  218.             <goals>
  219.               <goal>add-source</goal>
  220.               <goal>testCompile</goal>
  221.             </goals>
  222.           </execution>
  223.         </executions>
  224.       </plugin>
  225.       <plugin>
  226.         <groupId>org.apache.maven.plugins</groupId>
  227.         <artifactId>maven-assembly-plugin</artifactId>
  228.         <version>3.7.1</version>
  229.         <configuration>
  230.           <descriptorRefs>
  231.             <descriptorRef>jar-with-dependencies</descriptorRef>
  232.           </descriptorRefs>
  233.         </configuration>
  234.         <executions>
  235.           <execution>
  236.             <id>make-assembly</id>
  237.             <phase>package</phase>
  238.             <goals>
  239.               <goal>single</goal>
  240.             </goals>
  241.           </execution>
  242.         </executions>
  243.       </plugin>
  244.     </plugins>
  245.   </build>
  246. </project>
复制代码
hdfs-conf

   在 resources 目次下存放 hdfs 核心设置文件 core-site.xml 和hdfs-site.xml
  被引入的hdfs设置文件为测试集群设置文件
  由于生产情况与测试情况差异,项目打包的时间清除hdfs设置文件
  rdd

   雷同点:
都是分布式数据集
DataFrame底层是RDD,但是DataSet不是,不外他们末了都是转换成RDD运行
DataSet和DataFrame的雷同点都是有数据特性、数据范例的分布式数据集(schema)
差异点:
schema信息:
RDD中的数据是没有数据范例的
DataFrame中的数据是弱数据范例,不会做数据范例查抄
  ​ 固然有schema规定了数据范例,但是编译时是不会报错的,运行时才会报错
​ DataSet中的数据范例是强数据范例
序列化机制:
​ RDD和DataFrame默认的序列化机制是java的序列化,可以修改为Kyro的机制
​ DataSet利用自界说的数据编码器举行序列化和反序列化
  数据集方式构建RDD

  1. package cn.lihaozhe.chap01;
  2. import org.apache.spark.SparkConf;
  3. import org.apache.spark.api.java.JavaRDD;
  4. import org.apache.spark.api.java.JavaSparkContext;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. /**
  8. * 数据集构建RDD
  9. * RDD代表弹性分布式数据集。它是记录的只读分区集合。 RDD是Spark的基本数据结构。它允许程序员以容错方式在大型集群上执行内存计算。
  10. *
  11. * @author 李昊哲
  12. * @version 1.0
  13. */
  14. public class JavaDemo01 {
  15.    
  16.    
  17.   public static void main(String[] args) {
  18.    
  19.    
  20.     // SparkConf conf = new SparkConf().setAppName("RDD").setMaster("local");
  21.     // spark基础配置
  22.     SparkConf conf = new SparkConf().setAppName("RDD");
  23.     // 本地运行
  24.     conf.setMaster("local");
  25.     try (JavaSparkContext sparkContext = new JavaSparkContext(conf)) {
  26.    
  27.    
  28.       // 数据集
  29.       List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
  30.       // 从集合中创建 RDD
  31.       JavaRDD<Integer> javaRDD = sparkContext.parallelize(list);
  32.       // 将 spark RDD 转为 java 对象
  33.       List<Integer> collect = javaRDD.collect();
  34.       // lambda 表达式
  35.       collect.forEach(System.out::println);
  36.     }
  37.   }
  38. }
复制代码
  1. package cn.lihaozhe.chap01
  2. import org.apache.spark.{
  3.    
  4.    SparkConf, SparkContext}
  5. /**
  6. * 数据集构建RDD
  7. * RDD代表弹性分布式数据集。它是记录的只读分区集合。 RDD是Spark的基本数据结构。它允许程序员以容错方式在大型集群上执行内存计算。
  8. *
  9. * @author 李昊哲
  10. * @version 1.0
  11. */
  12. object ScalaDemo01 {
  13.    
  14.    
  15.   def main(args: Array[String]): Unit = {
  16.    
  17.    
  18.     // val conf = new SparkConf().setAppName("RDD").setMaster("local")
  19.     // spark基础配置
  20.     val conf = new SparkConf().setAppName("RDD")
  21.     // 本地运行
  22.     conf.setMaster("local")
  23.     val sparkContext = new SparkContext(conf)
  24.     // 数据集
  25.     val data = Array(1, 2, 3, 4, 5)
  26.     // 从集合中创建 RDD
  27.     // ParallelCollectionRDD
  28.     val rdd = sparkContext.parallelize(data)
  29.     rdd.foreach(println(_))
  30.   }
  31. }
复制代码
当地文件构建RDD

   words.txt
  1. linux shell
  2. java mysql jdbc
  3. hadoop hdfs mapreduce
  4. hive presto
  5. flume kafka
  6. hbase phoenix
  7. scala spark
  8. sqoop flink
  9. linux shell
  10. java mysql jdbc
  11. hadoop hdfs mapreduce
  12. hive presto
  13. flume kafka
  14. hbase phoenix
  15. scala spark
  16. sqoop flink
  17. base phoenix
  18. scala spark
  19. sqoop flink
  20. linux shell
  21. java mysql jdbc
  22. hadoop hdfs mapreduce
  23. java mysql jdbc
  24. hadoop hdfs mapreduce
  25. hive presto
  26. flume kafka
  27. hbase phoenix
  28. scala spark
  29. java mysql jdbc
  30. hadoop hdfs mapreduce
  31. java mysql jdbc
  32. hadoop hdfs mapreduce
  33. hive presto
复制代码
  1. package cn.lihaozhe.chap01;
  2. import org.apache.spark.SparkConf;
  3. import org.apache.spark.api.java.JavaRDD;
  4. import org.apache.spark.api.java.JavaSparkContext;
  5. import java.util.List;
  6. /**
  7. * 借助外部文件 External Datasets 构建 RDD
  8. *
  9. * @author 李昊哲
  10. * @version 1.0
  11. */
  12. public class JavaDemo02 {
  13.    
  14.    
  15.   public static void main(String[] args) {
  16.    
  17.    
  18.     // SparkConf conf = new SparkConf().setAppName("RDD").setMaster("local");
  19.     // spark基础配置
  20.     SparkConf conf = new SparkConf().setAppName("RDD");
  21.     // 本地运行
  22.     conf.setMaster("local");
  23.     try (JavaSparkContext sparkContext = new JavaSparkContext(conf)) {
  24.    
  25.    
  26.       // 使用本地文件系统构建数据集
  27.       JavaRDD<String> javaRDD = sparkContext.textFile("file:///D:/work/河南师范大学/2023/bigdata2023/spark/code/spark-code/word.txt");
  28.       // 将 spark RDD 转为 java 对象
  29.       List<String> collect = javaRDD.collect();
  30.       // lambda 表达式
  31.       collect.forEach(System.out::println);
  32.     }
  33.   }
  34. }
复制代码
  1. package cn.lihaozhe.chap01
  2. import org.apache.spark.{
  3.    
  4.    SparkConf, SparkContext}
  5. /**
  6. * 借助外部文件 External Datasets 构建 RDD
  7. *
  8. * @author 李昊哲
  9. * @version 1.0
  10. */
  11. object ScalaDemo02 {
  12.    
  13.    
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表