spark sql 学习:
def main(args: Array[String]): Unit = {
val sparksession = SparkSession.builder().appName("HBaseTest").master("local").getOrCreate()
val sc = sparksession.sparkContext
//设置日志级别
sc.setLogLevel("ERROR")
val x = sc.makeRDD(List((1,2),(1,3),(1,2),(4,5)))
val y = sc.makeRDD(List((3,2),(4,3),(1,2),(4,5)))
val sqlContext = sparksession.sqlContext
//隐式声明,从而使RDD可以转换为DataFrame(一般dataset)
import sqlContext.implicits._
val df1 = x.toDF("guo","yan")
val df2 = y.toDF("guo1","yan1")
val ds = df1.join(df2).where("guo == guo1")
ds.createOrReplaceTempView("joinTable")
sqlContext.sql("select guo,yan,yan1 from joinTable").show()
}
sparksql讲解网址:http://blog.youkuaiyun.com/dabokele/article/details/52802150
直接在命令行中使用spark-sql:
spark-sql --master spark://bigdata01:7077 --executor-cores 1 --num-executors 8 --name sparktaskname -e "your sql" >>output.csv
--conf spark.cores.max=8 用于配置本提交的任务占用的最大核心数
--conf spark.executor.instances=2 用于配置本任务最多的实例数
--conf spark.executor.memory=4g 用于配置每个实例分配的内存(根据资源情况进行动态分配即可)
--conf spark.executor.cores=2 设置任务中的每个执行器(每个实例)占用的核数