val spark = SparkSession.builder().master("local[*]").appName("catalog-study").getOrCreate() val catalog = spark.catalog 1. 2. Catalog相关的代码存放在org.apache.spark.sql.catalog下: 上面的Catalog只是一个接口定义规范,具体实现还有一个org.apache.spark.sql.internal.CatalogImpl,如果只是使用Spark...
catalog: org.apache.spark.sql.catalog.Catalog= org.apache.spark.sql.internal.CatalogImpl@17308af1 Querying the databases 我们一旦创建好catalog对象之后,我们可以使用它来查询元数据中的数据库,catalog上的API返回的结果全部都是dataset scala> catalog.listDatabases().select("name").show(false) 19/07/17 14...
从上面实现的功能看,Catalog其实是Spark了解session级别可见实体(数据库、表和函数)的一个入口,在它的具体实现CatalogImpl中还包括了创建一个新数据库、表和函数的功能。 总结下就是:Catalog围绕数据库、表和函数三种实体,提供创建、检索、缓存数据和删除的功能。
publicsealedclassCatalog 继承 Object Catalog 方法 CacheTable(String) 将指定的表缓存在内存中。 Spark SQL 可以通过调用CacheTable("tableName")或DataFrame.Cache()来缓存使用内存中列格式的表。 Spark SQL 将仅扫描所需的列,并自动优化压缩,以最大程度地减少内存使用量和 GC 压力。 可以调用UncacheTable("tabl...
SparkSQL和Hive的集成 集成步骤: -1. namenode和datanode启动 -2. 将hive配置文件软连接或者复制到spark的conf目录下面 $ ln -s /opt/modules/apache/hive-1.2.1/conf/hive-site.xml or $ cp /opt/modules/apache/hive-1.2.1/conf/hive-site.xml ./ ...
就是说,SparkCatalog专用于Iceberg 管理,比如你可以这样在Spark Catalog Manager中注册hive和hadoop类型的Catalog: set spark.sql.catalog.hive_iceberg_catalog_demo=org.apache.iceberg.spark.SparkCatalog; set spark.sql.catalog.hive_iceberg_catalog_demo.type=hive; ...
--conf spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog \ --conf spark.sql.catalog.paimon.warehouse=file:/tmp/paimon \ --conf spark.sql.extensions=org.apache.paimon.spark.extensions.PaimonSparkSessionExtensions 使用spark.sql.catalog.(catalog_name)下的属性进行配置,在上述情况下,"paimon...
一.在内存中缓存数据Spark SQL可以通过调用Spark.catalog.cachetable ("tableName")或DataFrame.cache()来使用内存中的columnar格式缓存表。然后Spark SQL将只扫描所需的列,并自动调优压缩以最小化内存使…
配置参数格式 配置参数示例 SQL开发编辑器 set key=value; set spark.sql.hive.metastore.version=adb; Spark Jar开发编辑器 "key": "value" "spark.sql.hive.metastore.version":"adb" Notebook开发编辑器 "key": "value" "spark.sql.hive.metastore.version":"adb" ...
spark.catalog.cacheTable("tableName")sqlContext.cacheTable("tableName")spark.catalog.uncacheTable("tableName")sqlContext.uncacheTable("tableName") 或者缓存dataFrame dataFrame.cache()dataFrame.unpersist() 或者CACHE TABLE //缓存全表sqlContext.sql("CACHE TABLE activity")//缓存过滤结果sqlContext.sql(...