sparksql--hive

//与hive表进行连接:
 // 1.一种通过conf.set 设置或直接将hive配置hive-site.xml文件拷贝工程
 // 2.加载mysql驱动

 //从hive中读取数据,驱动不是SQLContext,而是HiveContext
 val hsc=new HiveContext(sc)
 //执行hql语句
 hsc.sql("select * from hive.person").show()
 //执行的临时表
 val df=hsc.sql("select * from hive.person")
 df.registerTempTable("t_per")
 hsc.sql("select * from t_per").show()

 //把结果输出到hive中
val sourceRDD= sc.parallelize(List((1,"wang",12),(2,"afds",34)))
val id= StructField("id",IntegerType,true)
val name= StructField("name",StringType,true)
val age=  StructField("age",IntegerType,true)
val st=StructType(List(id,name,age))

 val mapRDD= sourceRDD.map(
   line=>{
     Row( line._1,
       line._2,
       line._3)
   }
 )
 hsc.createDataFrame(mapRDD,st).registerTempTable("per")
 val hiveDF=hsc.sql("select * from per")
 //输出到hive,hive表自动创建,如果表存在,报错:Exception in thread "main" org.apache.spark.sql.AnalysisException:  Table `hive`.`person` already exists.;
 hiveDF.write.saveAsTable("hive.person")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值