spark基础---->spark的第一个程序

  这里面我们介绍一下spark的安装,并通过一个python的例子来简单的体会一下spark的使用。

spark的安装与使用

安装环境:mac 10.13.6,spark版本:2.3.1,python版本:3.6.5

一、在mac上面安装spark和pyspark,可以使用brew包管理器安装。直接运行命令

brew install apache-spark
pip install pyspark

二、通过start-master启动我们的集群

然后我们访问:http://localhost:8080/,就可以看到集群相关的信息。

三、启动我们的worker。

再次访问http://localhost:8080/,可以在workers里面看到我们启动的worker信息。

四、编写我们的第一个spark的python程序

from pyspark import SparkContext, SparkConf

conf = SparkConf().setAppName("FirstApp").setMaster("spark://CNhuxhu.local:7077")
sc = SparkContext(conf=conf)
lines = sc.textFile(‘/usr/local/Cellar/apache-spark/2.3.1/README.md‘)

print(‘counts = ‘, lines.count())

五、提交到spark中处理

spark-submit --master local[4] simpleSpark.py

可以在控制台看到如下的打印信息:

counts =  103

程序中遇到的一些问题

一、运行程序报以下的错误

py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.

这是由于我们的mac本地安装的java版本有jdk8和jdk10,但是默认的是jdk10。spark2.3.1要求的jdk版本是1.8,所以修改系统的jdk版本问题解决。vim ~/.zshrc,添加以下内容

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home

二、查看系统安装jdk的java_home命令

usr/libexec/java_home -V

可以查看系统安装的所有java以及JAVA_HOME的信息

Matching Java Virtual Machines (2):
    10.0.2, x86_64:    "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    1.8.0_162, x86_64:    "Java SE 8"    /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home

三、以下是一个java版本的spark程序

项目是由maven构建的,在pom.xml添加所需的依赖。

<dependency> <!-- Spark dependency -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>2.3.1</version>
</dependency>

我们编写的java代码如下:

package com.linux.huhx;

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.SparkSession;

/**
 * user: huxhu
 * date: 2018/8/11 3:40 PM
 **/
public class SimpleSpark {
    public static void main(String[] args) {
        String logFile = "/usr/local/Cellar/apache-spark/2.3.1/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();
    }
}

mvn package打包项目,在target目录下生成可执行的sparkLearn-1.0-SNAPSHOT.jar文件。最后执行spark-submit命令

spark-submit --class "com.linux.huhx.SimpleSpark" --master local[4] target/sparkLearn-1.0-SNAPSHOT.jar

可以在控制台看到如下的日志打印

Lines with a: 61, lines with b: 30

友情链接

原文地址:https://www.cnblogs.com/huhx/p/firstpythonsparkdemo.html

时间: 2024-08-01 02:39:22

spark基础---->spark的第一个程序的相关文章

Java 零基础跑起第一个程序

Java 零基础跑起第一个程序 一 概述 1  java代码编译 编译后才能在计算机中运行,编译就是把人能看懂的代码转换成机器能看懂的形式 2 java的优点 一次编译,到处运行.因为java代码是在虚拟机中运行,虚拟机消除了不同操作系统间的差异.Java Virtual Machine---简称JVM 3  java的版本 SUN公司发布Java1.2以后,叫把Java叫做java2了,所以现在都叫J2XX. 功能上分为三个版本: J2SE 标准版----现在大部分开发都用它 J2EE 企业版

Go基础----&gt;go的第一个程序

今天我们学习搭建一个学习go语言的开发环境. Go语言 一.下载go 下载地址:https://golang.org/dl/ 校验下载,在命令行输入go version 二.编写第一个hello world程序 项目结构如下: 其中的hello.go的代码如下: package main import "fmt" func main() { fmt.Printf("Hello World."); } 三.运行hello world程序 编译构建程序:go build

Java零基础系列001——第一个程序

public class Welcome { public static void main(String[] args) {//args为arguments的缩写 System.out.println("你好,世界!"); } }

spark基础知识

1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架. dfsSpark基于mapreduce算法实现的分布式计算,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法. 2.Spark与Hadoop的对比(Spark的优势) 1.Spark的中间数据放到内存

最全的Spark基础知识解答

最全的Spark基础知识解答 时间:2016-12-12 12:00:50      阅读:19      评论:0      收藏:0      [点我收藏] 原文:http://www.cnblogs.com/sanyuanempire/p/6163732.html 一. Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架. dfsSpark基于mapreduce算法实现的分布式计算,拥有HadoopMa

Spark源码定制第一课:通过案例对SparkStreaming透彻理解三板斧之一

第一课:通过案例对SparkStreaming透彻理解三板斧之一:解密SparkStreaming另类实验及SparkStreaming本质解析 本期导读: 1 Spark源码定制选择从SparkStreaming入手: 2 Spark Streaming另类在线实验: 3 瞬间理解SparkStreaming本质. 1.    从Spark Streaming入手开始Spark源码版本定制之路 1.1           从Spark Streaming入手Spark源码版本定制之路的理由 从

Spark基础与Java Api介绍

原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3832405.html  一.Spark简介 1.什么是Spark 发源于AMPLab实验室的分布式内存计算平台,它克服了MapReduce在迭代式计算和交互式计算方面的不足. 相比于MapReduce,Spark能充分利用内存资源提高计算效率. 2.Spark计算框架 Driver程序启动很多workers,然后workers在(分布式)文件系统中读取数据后转化为RDD(弹性分布式数据集),最后对RD

【原创 Hadoop&amp;Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell

Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实验: 练习1 利用Spark Shell(本机模式) 完成WordCount spark-shell 进行Spark-shell本机模式 第一步:通过文件方式导入数据 scala> val rdd1 = sc.textFile("file:///tmp/wordcount.txt")

Spark 基础操作

1. Spark 基础 2. Spark Core 3. Spark SQL 4. Spark Streaming 5. Spark 内核机制 6. Spark 性能调优 1. Spark 基础 1.1 Spark 中的相应组件 1.2 Standalone 模式安装 // 1. 准备安装包(见下方参考资料): spark-2.1.3-bin-hadoop2.7.tgz // 2. 修改配置文件 // 2.1 spark-env.sh.template mv spark-env.sh.templ