Spark SQL基础学习【二】以编程方式执行Spark SQL查询

  前面我们学习了如何在Spark Shell中使用SQL完成查询,现在我们来实现在自定义的程序中编写Spark SQL查询程序。首先在maven项目的pom.xml中添加Spark SQL的依赖

1.maven添加Spark SQL的依赖

我这里是1.6.1


    org.apache.spark
    spark-sql_2.10
    1.6.1


2.编写代码

package SQL

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SQLContext

object SQLDemo {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf().setAppName("SQLDemo")//.setMaster("local[2]") 本地模式
    val sc=new SparkContext(conf)
    val sqlContext=new SQLContext(sc)
    //用户的权限
    System.setProperty("user.name","root")
    val studentRdd=sc.textFile("hdfs://hadoop01:9000/student.txt").map(line=>{
      val fields=line.split(",")
      student(fields(0).toLong,fields(1),fields(2).toInt)
    })
    //导入隐式转换,如果不到入无法将RDD转换成DataFrame
    //将RDD转换成DataFrame
    import sqlContext.implicits._

    val studentDf=studentRdd.toDF
    studentDf.registerTempTable("t_student")
    sqlContext.sql("select * from t_student where age>20 order by age limit 2").show()
    sc.stop()
  }
}
case class student(id:Long,name:String,age:Int)

3.将程序打成jar包,上传到spark集群,提交Spark任务

3.1将程序打成jar包

Spark SQL基础学习【二】以编程方式执行Spark SQL查询_第1张图片
Spark SQL基础学习【二】以编程方式执行Spark SQL查询_第2张图片

3.2上传到集群

Spark SQL基础学习【二】以编程方式执行Spark SQL查询_第3张图片
 这时候你已经复制了jar包的全路径了 
只要Alt+p  然后put  加 粘贴就好

3.3提交Spark任务

/home/hadoop/apps/spark-1.6.1-bin-hadoop2.6/bin/spark-submit  --class  SQL.SQLDemo  --master spark://hadoop01:7077 /root/wordcount-1.0-SNAPSHOT.jar

  SQL.SQLDemo  是包名和类名
/root/wordcount-1.0-SNAPSHOT.jar  是你上传的jar

至此 完成!

你可能感兴趣的:(Spark)