SparkSQL上下⽂创建与测试环境搭建
Spark SQL上下⽂创建与测试环境搭建
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。
⼿动码字不易,请⼤家尊重劳动成果,谢谢
Spark SQL上下⽂创建
这篇⽂章主要介绍Spark SQL,因此默认各位已经有⼀个搭建好的Spark开发环境了。
需要先引⼊和spark版本⼀致的spark-sql包
如果我们要在代码中使⽤Spark SQL,⾸先我们要创建操作Spark SQL的上下⽂:
1、Spark 2.0之前使⽤Spark SQL需要创建SQLContext对象
val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
/
/ this is used to implicitly convert an RDD to a DataFrame.
import sqlContext.implicits._
2、Spark 2.0之后则需要SparkSession对象。
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("Spark SQL basic example")
.config("fig.option", "some-value")
.getOrCreate()
// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._
之后我们就可以愉快地学习Spark SQL了。
Spark SQL测试环境搭建
Spark SQL上下⽂创建只是为了让我们能在代码中编写Spark SQL应⽤,但是毕竟代码运⾏起来是会有⼀些⿇烦的,并且结果不那么直观。因此我们也要搭建⼀套可以运⾏spark-shell的环境,之后spark-shell将成为本教程的主要⼯具。
不管在windows还是linux上,操作步骤都是基本⼀致的:
注意:所有路径下尽量不要带空格,尤其是Spark包
1、安装JAVA
Windows:
下载JDK安装包并安装完毕
在环境变量⾥增加JAVA_HOME为JDK的根⽬录,如:C:\Program Files\Java\jre1.8.0_144
Linux:
下载JDK包解压在合适的路径下
增加环境变量配置到/root/.bashrc或者/etc/profile的最后⾯:
export JAVA_HOME=JDK根⽬录
export PATH=$PATH:$JAVA_HOME/bin
确保执⾏java -version能打印Java版本
2、安装Scala
Windows:
下载Scala安装包并安装完毕
在环境变量⾥增加SCALA_HOME为Scala的根⽬录,如:C:\Program Files (x86)\scala Linux:
下载Scala包解压在合适的路径下linux安装jdk环境变量
增加环境变量配置到/root/.bashrc或者/etc/profile的最后⾯:
export SCALA_HOME=Scala根⽬录
export PATH=$PATH:$SCALA_HOME/bin
确保执⾏Scala能打开Scala REPL并且可进⾏简单运算
3、安装Hadoop
Windows:
下载Hadoop⼆进制包,解压在合适的路径下
在环境变量⾥增加HADOOP_HOME为Hadoop的根⽬录
新启动⼀个cmd执⾏:
< chmod777 /tmp/hive
Linux:
下载Hadoop⼆进制包,解压在合适的路径下
增加环境变量配置到/root/.bashrc或者/etc/profile的最后⾯:
export HADOOP_HOME=Hadoop根⽬录
export PATH=$PATH:$HADOOP_HOME/bin
4、安装Spark
Windows:
下载Spark安装包并安装完毕
在环境变量⾥增加SPARK_HOME为Spark的根⽬录
Linux:
下载Scala包解压在合适的路径下
增加环境变量配置到/root/.bashrc或者/etc/profile的最后⾯:
export SPARK_HOME=Spark根⽬录
export PATH=$PATH:$SPARK_HOME/bin
然后⼀切安装就结束了,启动⼀个新的cmd,执⾏spark-shell即可进⼊spark-shell中。
其实所有步骤就是在下载包->解压到⽬录->设置环境变量,除了windows中的hadoop稍有不同Linux上如果不明⽩,直接百度Spark环境搭建就⾏了,⼀搜⼀⼤把

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。