SQL操作Spark SQL--CatalogApiTest

匿名 (未验证) 提交于 2019-12-02 23:59:01
object CatalogApiTest {   def main(args: Array[String]): Unit = {     val spark = SparkSession       .builder()       .appName("CatalogApiTest")       .getOrCreate()      //查看spark sql应用用的是哪一种catalog     //目前支持hive metastore 和in-memory两种     //spark-shell默认的值为hive     //spark-shell --master spark://master:7077 --conf spark.sql.catalogImplementation=in-memory     spark.conf.get("spark.sql.catalogImplementation")      //1:数据库元数据信息     spark.catalog.listDatabases().show(false)     spark.catalog.currentDatabase     val db = spark.catalog.getDatabase("default")     spark.catalog.databaseExists("twq")      spark.sql("CREATE DATABASE IF NOT EXISTS twq " +       "COMMENT 'Test database' LOCATION 'hdfs://master:9999/user/hadoop-twq/spark-db'")      spark.catalog.setCurrentDatabase("twq")     spark.catalog.currentDatabase      //2:表元数据相关信息     spark.catalog.listTables("twq").show()      val sessionDf = spark.read.parquet(s"${BASE_PATH}/trackerSession")     //创建一张表     sessionDf.createOrReplaceTempView("trackerSession")      //catalog table相关元数据操作     spark.catalog.listTables("twq").show()      //用sql的方式查询表     val sessionRecords = spark.sql("select * from trackerSession")      sessionRecords.show()      spark.catalog.tableExists("log")     spark.catalog.tableExists("trackerSession")     spark.catalog.tableExists("twq", "trackerSession") //todo 感觉应该是spark的bug     spark.catalog.listTables("twq").show()     spark.catalog.getTable("trackerSession")      //表的缓存     spark.catalog.cacheTable("trackerSession")     spark.catalog.uncacheTable("trackerSession")      //3:表的列的元数据信息     spark.catalog.listColumns("trackerSession").show()      spark.sql("drop table trackerSession")     spark.sql("drop database twq")     spark.catalog.setCurrentDatabase("default")     spark.catalog.listTables().show()      spark.stop()   } }

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!