Spark Conf配置用法

Spark 2.0.0

在Spark2.0之后,Spark Session也是Spark 的一个入口, 为了引入dataframe和dataset的API,同时保留了原来SparkContext的functionality,
如果想要使用 HIVE,SQL,Streaming的API, 就需要Spark Session作为入口。

SparkSession spark = SparkSession.builder().appName(
"demo_spark"
).enableHiveSupport().getOrCreate(); 

1)SparkSession.builder() 创建此方法用于构造SparkSession。
2)master(“local”) 设置要连接的master URL,例如:“local”在本地运行“local[4]”以4核在本地运行“spark://master:7077”在spark独立集群上运行
3)appName( ) 设置将在spark Web UI中显示的应用程序的名称。如果未设置应用程序名称,则将使用随机生成的名称。
4)Config 设置使用此方法设置的配置选项会自动传递到’SparkConf’和’SparkSession’自己的配置,它的参数由键值对组成。
5)enableHiveSupport启用Hive支持,类似于HiveContext创建了sparkSession,我们可以用它来读取数据。
6)getOrCreate()方法表示有就拿过来,没有就创建,类似于单例模式。

使用SparkSession读取数据SparkSession是读取数据的入口点,类似于旧的SQLContext.read。以下代码使用SparkSession从CSV读取数据:

val df =spark.read.format("com.databricks.spark.csv")                 
<br>.schema(customSchema)   <br>.load("data.csv")  

从Spark 2.0.0开始,最好使用SparkSession,因为它提供了对sparkContext所具有的所有spark功能的访问。 此外,它还提供了用于处理DataFrame和DataSet的API运行SQL查询SparkSession可用于对数据执行SQL查询,将结果作为Data-Frame(即数据集[ROW])返回。
Spark Conf配置用法

众所周知,在以前的版本中,sparkcontext 是spark的入口点,因为RDD是主要的API,它是使用上下文API创建和操作的。 对于每个其他API,我们需要使用不同的context。对于流式传输,我们需要streamingContext。 对于SQL sqlContext和hive hiveContext.,因为dataSet和DataFrame API正在成为新的独立API,我们需要为它们构建入口点。 因此在spark 2.0中,我们为DataSet和DataFrame API创建了一个新的入口点构建,称为Spark-Session。
它是SQLContext,HiveContext和未来的streamingContext的组合。 在这些context中可用的所有API都可以在SparkSession上获得,SparkSession也有实际计算的spark context 。
SparkSession: SparkSession实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),
所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。
Scala:
val sparkSession = SparkSession.builder
.master(“master”)
.appName(“appName”)
.getOrCreate()
或者
SparkSession.builder.config(conf = SparkConf())

I、 SparkSubmit 的 shell脚本

/data/spark/spark-2.2.0-bin-hadoop2.7/bin/spark-submit
--master spark://elcndc2sc39t:7077
--class com.enc.analysis.core.AlgorithmExecute
/data/upload/analysis/analysisFrame-1.1.0.jar $1 $2

–master表示master路径,
–class表示入口的类的全路径
/data/upload/analysis/analysisFrame-1.1.0.jar 表示计算框架jar包的全路径
$1,$2…是自定义的shell命令进行传参,传递的参数会在入口类的main方法的String[] args中

参考自:https://www.cnblogs.com/Allen-rg/p/11364683.html

上一篇:idea下spark连接hive


下一篇:错误总结