zoukankan      html  css  js  c++  java
  • sparksql系列(一)环境搭建及helloworld详解

    以前公司用的是spark-core,但是换工作后用的多是spark-sql。
    最近学习了很多spark-sql,在此做一个有spark经验的sparksql快速入门的教程。
    JDK安装包 1.8版本:https://pan.baidu.com/s/1pLW3jyKv3N_FhQ7vvE4U2g    
    SCALA安装包:https://pan.baidu.com/s/17f8AiS2n_g5kiQhxf7XIlA
    hadoop安装包:https://pan.baidu.com/s/1YNM2_eTV8Zf_2SxamfMrSQ
    Spark安装包:https://pan.baidu.com/s/17mf2_DMiNy7OdlFwygekhg
    IDE安装包:https://pan.baidu.com/s/1caaKufvSuHBX1xEFXvCwPw

    一:JDK环境搭建

    其中重要的就是两个安装路径JDK路径和JRE路径,三个环境变量:JAVA_HOME、PATH、CLASSPATH

    我本地的是   JDK路径(D:JAVAJDK)      JRE路径(D:JAVAJRE)     

    JAVA_HOME(D:JAVAJDK)   

    PATH(%JAVA_HOME%in;%JAVA_HOME%jrein;)  

    CLASSPATH(.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;)

    验证方案:java -version

    二:SCALA环境搭建

    下载后,解压即可。配置一个环境变量即可。

    重要环境变量,加上即可:SCALA_HOME(D:JAVAscala)      PATH(%SCALA_HOME%in;%SCALA_HOME%jrein;)  

    验证方法:scala -version

    三:hadoop环境搭建

        下载后,解压即可。配置两个环境变量即可。

        HADOOP_HOME(D:JAVAhadoop)      PATH($HADOOP_HOME/bin;)

        其中需要将bin下面的东西替换成window版本,因为是window版本。上面链接中的已经替换过。        

    四:运行的jar包

        spark 解压的路径中jars目录中的东西,添加进IDE的classpath就行了

    五:IDE解压开就行

        打开后新建一个scala项目。和JAVA的IDE操作一模一样,在此不详细描述。

    六:sparksql 你好,世界

       spark 解压的路径中jars目录中的东西,添加进IDE的classpath

                import java.util.Arrays
                import org.apache.spark.SparkConf
                import org.apache.spark.api.java.JavaSparkContext
                import org.apache.spark.sql.{DataFrame, Row, SparkSession, functions}
       import org.apache.spark.sql.functions.{col, desc, length, row_number, trim, when}
       import org.apache.spark.sql.functions.{countDistinct,sum,count,avg}
                import org.apache.spark.sql.types.{LongType, StringType, StructField, StructType}
                import org.apache.spark.sql.expressions.Window
                import org.apache.spark.storage.StorageLevel
                import org.apache.spark.sql.SaveMode

                object WordCount {
                            def main(args: Array[String]): Unit = {
                                        val sparkSession= SparkSession.builder().master("local").appName("AppName").getOrCreate()
                                        val javasc = new JavaSparkContext(sparkSession.sparkContext)

                                        val nameRDD = javasc.parallelize(Arrays.asList("{'name':'wangwu','age':'18','vip':'t'}",
                                                    "{'name':'sunliu','age':'19','vip':'t'}","{'name':'zhangsan','age':'20','vip':'f'}"));
                                        val namedf = sparkSession.read.json(nameRDD)

                                        namedf.select(col("name")).show(100)

                            }
                }

    hello,world详解

            sparkSession的作用就相当于sparkcontext,是操作数据的关键

      SparkSession.builder()        java工厂模式哈

      master("local")                      限制模式是本地模式

      appName("AppName")       填写自己app的名称,免得任务多的时候找不到自己的任务

      getOrCreate()                       固定方法,我也不知道为什么。尴尬,尴尬,尴尬

    上线sparksession的初始化

               怎么?sparksession的初始化还分本地模式和线上模式吗?

         不,只是上一段代码中有一个master参数是local,这个参数的意思是本地模式。真正上线时不能用这个,需要去掉。

       val sparkSession= SparkSession.builder().appName("AppName").getOrCreate()

    JavaSparkContext、nameRDD、namedf、select

      javaSparkContext                其实没有什么卵用就是将json转换成rdd

      namedf                                  rdd转换成的Dataframe,其实和spark-core中的rdd是一个概念。将json串转换为一个sparksql表了。

      select                                     Dataframe所有的操作和SQL是一样的,select就是简单的查询

     
  • 相关阅读:
    Java基础97 json插件的使用(java对象和json字符串对象之间的转换)
    rman checksyntax和解决RMAN-01009: syntax error: found "dot"
    oracle partition table 分区表详解
    RMAN.DBMS_RCVCAT 版本错误处理
    PSU/OPATCH/OJVM下载页面及安装方式(最实用版)
    12.2RAC搭建记录
    主备归档不一致导致的RMAN-08137无法清理归档解决方案
    Oracle 锁的等级
    表数据压缩
    OLTP/OLAP
  • 原文地址:https://www.cnblogs.com/wuxiaolong4/p/11668053.html
Copyright © 2011-2022 走看看