zoukankan      html  css  js  c++  java
  • spark shell

    启动spark-shell客户端

    spark自带的交互式shell程序,可以在该命令行下使用scala编写spark程序

    启动spark-shell

    bin/spark-shell
    --master spark://m1:7077
    --executor-memory 512m
    --total-executor-cores 2

    --master:指定spark集群的master节点,如果不指定则是启动本地模式一个worker进程,如果指定为local则本地启动一个worker进程,如果为local[k]则启动k个worker进程,如果为local[*]则启动的worker进程和机器核心数一样
    --executor-memory:指定每一个executor可以占用的内存
    --total-executor-cores:指定整个应用可以使用的核心数

    常用的方法

    RDD的方法分为transformations和actions,当对RDD进行transformation时,不会立刻执行,因为transformation是延迟执行的,

    此时只会记录RDD的lineage,transformation返回的数据还是RDD。action会立刻执行,返回操作后的结果集

    1、textFile: 加载文件,如果文件不是分布式文件,则每个work节点都需要有这个文件,不然运行的时候会提示文件找不到错误

         sc.textFile("README.md") 

    2、addFile:添加文件到spark中

         sc.addFile("../test")

         可以通过 sc.textFile(SparkFiles.get("test"))进行文件的加载,注意引入import org.apache.spark.SparkFiles

    3、count:RDD中有多少条数据

         val input = sc.textFile("../README.md")

          input.count

    4、first:返回RDD中的第一条数据

         input.first

    5、map:对RDD中的每一条数据做map方法中传递的方法的操作

        val spaceSplit = input.map(_.split(" "))

         spaceSplit.first

    6、flatMap:对RDD的数据进行映射后,合并成一个集合

         val fmInput = input.flatMap(_.split(" "))

    flatMap:

    map:

    7、take:取RDD中的前几条数据

        val input = sc.textFile("../README.md")

        取第一条数据:input.take(1)

        取前三条数据:input.take(3)

    8、collect:以集合的形式返回RDD中的数据

        input.collect

    9、reduceByKey:对相同key的值,做给定方法的操作,下面是一个spark实现的map reduce统计文件中的单词个数

         input.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect

  • 相关阅读:
    剑指offer-删除链表中重复的结点
    剑指offer-矩阵中的路径
    剑指offer-旋转数组的最小数字
    剑指offer-用两个栈实现队列
    剑指offer-二叉树的下一个节点
    剑指offer-从尾到头打印链表
    SSM整合所需jar包
    剑指offer-树中两个节点的最低公共祖先
    剑指offer-判断是否是平衡二叉树
    剑指offer-二叉树的深度
  • 原文地址:https://www.cnblogs.com/heml/p/6135018.html
Copyright © 2011-2022 走看看