Spark sql-如何与sqlcontext使用hglcontext生成的数据帧进行交互?

时间:2016-08-20 15:23:59

标签: apache-spark apache-spark-sql spark-dataframe

我有两个文件emp1和emp2。

emp1:
101,aaa,30000,m,11   
102,bbbb,40000,f,12  
103,cc,60000,m,12  
104,dd,80000,f,11                 
105,cccc,90000,m,12  

emp2:
201,dk,90000,m,11  
202,mm,100000,f,12  
203,mmmx,80000,m,12  
204,vbvb,70000,f,11

之后我创建了一个case类来为emp1和emp2提供模式。

case class Emp(id:Int, name:String, 
               sal:Int, sex:String, dno:Int)

然后我定义了一个函数toEmp:

def toEmp(x:String) = {  
  val  w = x.split(",")  
  Emp(w(0).toInt,   
  w(1), w(2).toInt,  
  w(3), w(4).toInt)  
} 

val e1 = emp1.map(x => toEmp(x))  
val e2 = emp2.map(x => toEmp(x))  
val df1 = e1.toDF  
val df2 = e2.toDF


df1.registerTempTable("df1")
df2.registerTempTable("df2")

val df = sqlContext.sql("select * from 
               df1 union all  select * from df2")

df.registerTempTable("df")

val res = HiveContext.sql("select sex,sum(sal) as tot, count(*) as cnt 
                                                  from df group by sex")   

我在这里得到错误。任何人都可以帮助我如何使用HiveContext生成由sqlContext生成的数据框?

0 个答案:

没有答案