Spark 操作hive

spark 读取hive数据

在 hive的目录下 启动hive 服务 hive --service metastore

object CreateDateFrameFromHive {

        def main(args: Array[String]):Unit = {

        val spark =                   SparkSession.builder().appName("CreateDataFrameFromHive").enableHiveSupport()

        .config("hive.metastore.uris", "thrift://node03:9083").getOrCreate()

        spark.sql("use spark")

        spark.sql("drop table if exists student_infos")

        spark.sql("create table if not exists student_infos (name string,age int) row format  delimited         fields terminated by '\t'")

        spark.sql("load data local inpath './data/student_infos' into table student_infos")

        spark.sql("drop table if exists student_scores")

        spark.sql("create table if not exists student_scores (name string,score int) row format         delimited fields terminated by '\t'")

        spark.sql("load data local inpath './data/student_scores' into table student_scores")

        val df = spark.sql("select si.name,si.age,ss.score from student_infos si,student_scores ss         where si.name = ss.name")

        spark.sql("drop table if exists good_student_infos")

        /**

        * 将结果写入到hive表中

        */

        df.write.mode(SaveMode.Overwrite).saveAsTable("good_student_infos")

}

访问 http://node01:50070/explorer.html#/user/hive/warehouse/

Spark 操作hive