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

来源:互联网 发布:net程序员是干嘛的 编辑:程序博客网 时间:2024/06/08 09:55

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

1.maven添加Spark SQL的依赖

我这里是1.6.1

<dependency>    <groupId>org.apache.spark</groupId>    <artifactId>spark-sql_2.10</artifactId>    <version>1.6.1</version></dependency>

2.编写代码

package SQLimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.SQLContextobject 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包



3.2上传到集群


 这时候你已经复制了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

至此 完成!