spark开发环境搭建

spark开发环境搭建

提示:spark官方系列教程



前言

本篇内容主要按照spark官方教程,搭建Java版的spark开发教程,该例子主要是为了统计含有“a”的行数,和含有“b”的行数


提示:以下是本篇文章正文内容,下面案例可供参考

一、IDEA搭建Maven工程

IDEA搭建maven工程,在pom文件中导入依赖。

 <dependencies>
    <dependency> <!-- Spark dependency -->
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.12</artifactId>
      <version>3.1.1</version>
    </dependency>
  </dependencies>

注意:在spark官方文档中还包含provided,该字段的意思是:provided表明该包只在编译和测试的时候用

二、新建 SimpleApp类

1.复制代码

/* SimpleApp.java */
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.Dataset;

public class SimpleApp {
  public static void main(String[] args) {
    String logFile = "YOUR_SPARK_HOME/README.md"; // Should be some file on your system
    SparkSession spark = SparkSession.builder().appName("Simple Application").getOrCreate();
    Dataset<String> logData = spark.read().textFile(logFile).cache();

    long numAs = logData.filter(s -> s.contains("a")).count();
    long numBs = logData.filter(s -> s.contains("b")).count();

    System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);

    spark.stop();
  }
}

上述代码在使用Java 8 时,可能需要在Lambda表达式处进行,对参数s进行强制类型转换。同时需要修改logFile的值,该值是文件的地址。

  long numAs = logData.filter((FilterFunction<String>) s -> s.contains("a")).count();
        long numBs = logData.filter((FilterFunction<String>) s -> s.contains("b")).count();

2.设置JVM运行参数

在这里插入图片描述

-Dspark.master=local

设置该参数的目的是为了指明该程序是本机运行。否则将会抛出如下异常

org.apache.spark.SparkException: A master URL must be set in your configuration
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:394)
	at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2678)
	at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:942)
	at scala.Option.getOrElse(Option.scala:189)
	at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:936)
	at SimpleApp.main(SimpleApp.java:8)
21/05/22 20:51:37 INFO SparkContext: Successfully stopped SparkContext
Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:394)
	at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2678)
	at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:942)
	at scala.Option.getOrElse(Option.scala:189)
	at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:936)
	at SimpleApp.main(SimpleApp.java:8)


总结

上述操作为搭建spark开发环境教程,这里之前已经安装了Hadoop开发环境,如果没有安装Hadoop开发环境的需要安装winutils.exe ,安装包在github中有,安装教程自行搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值