Spark 之 HiveStrategies

HiveTableRelation 相关代码

HiveStrategies.scala
当 relation.tableMeta.stats.isEmpty 是, 即调用 hiveTableWithStats

class DetermineTableStats(session: SparkSession) extends Rule[LogicalPlan] {private def hiveTableWithStats(relation: HiveTableRelation): HiveTableRelation = {val table = relation.tableMetaval partitionCols = relation.partitionCols// For partitioned tables, the partition directory may be outside of the table directory.// Which is expensive to get table size. Please see how we implemented it in the AnalyzeTable.val sizeInBytes = if (conf.fallBackToHdfsForStatsEnabled && partitionCols.isEmpty) {try {val hadoopConf = session.sessionState.newHadoopConf()val tablePath = new Path(table.location)val fs: FileSystem = tablePath.getFileSystem(hadoopConf)fs.getContentSummary(tablePath).getLength} catch {case e: IOException =>logWarning("Failed to get table size from HDFS.", e)conf.defaultSizeInBytes}} else {conf.defaultSizeInBytes}val stats = Some(Statistics(sizeInBytes = BigInt(sizeInBytes)))relation.copy(tableStats = stats)}override def apply(plan: LogicalPlan): LogicalPlan = plan resolveOperators {case relation: HiveTableRelationif DDLUtils.isHiveTable(relation.tableMeta) && relation.tableMeta.stats.isEmpty =>hiveTableWithStats(relation)// handles InsertIntoStatement specially as the table in InsertIntoStatement is not added in its// children, hence not matched directly by previous HiveTableRelation case.case i @ InsertIntoStatement(relation: HiveTableRelation, _, _, _, _, _)if DDLUtils.isHiveTable(relation.tableMeta) && relation.tableMeta.stats.isEmpty =>i.copy(table = hiveTableWithStats(relation))}
}
  • HiveTableRelation
/*** A `LogicalPlan` that represents a hive table.** TODO: remove this after we completely make hive as a data source.*/
case class HiveTableRelation(tableMeta: CatalogTable,dataCols: Seq[AttributeReference],partitionCols: Seq[AttributeReference],tableStats: Option[Statistics] = None,@transient prunedPartitions: Option[Seq[CatalogTablePartition]] = None)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《微机原理及接口技术》

编程题: 编制一个程序片断,把保存在变量dataA和dataB中较大的数据取出后存入maxC。假设变量存放的是32位有符号数。 OV AX, DATA ; 段初始化 MOV DS, AX MOV AX, STACK MOV SS, AX MOV DX, WORD PTR BUFA2 ; 按题意,将数送入 DX,AX, BX,…

千问Qwen7B chat:简单代码使用

我们先用一个简单的例子看一下千问的代码逻辑及效果。 from modelscope import AutoModelForCausalLM, AutoTokenizer from modelscope import GenerationConfig# 加装分词 tokenizer AutoTokenizer.from_pretrained("qwen/Qwen-7B-Chat", revisionv1.0.5, trust_r…

每日一题36:数据分组之科目种类数量

一、每日一题 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中,(subject_id, dept_id) 是该表的主键。 该表中的每一行都表示…

【postgresql初级使用】视图上的触发器instead of,替代计划的rewrite,实现不一样的审计日志

instead of 触发器 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 inst…

Python私教张大鹏 Vue3整合AntDesignVue之Layout布局

案例&#xff1a;栅格布局 核心代码&#xff1a; <template><a-row><a-col :span"24">col</a-col></a-row><a-row><a-col :span"12">col-12</a-col><a-col :span"12">col-12</a-col…

国际货币基金组织警告:网络攻击影响全球金融稳定

近日&#xff0c;在一份关于金融稳定的报告中&#xff0c;国际货币基金组织&#xff08;IMF&#xff09;用了一章&#xff08;共三章&#xff09;的篇幅描述了网络攻击对金融环境的影响&#xff0c;并警告称&#xff0c;全球金融稳定正受到日益频繁和复杂的网络攻击的威胁。同时…

面试题react03

React事件机制&#xff1a; React的事件机制可以分为两个部分&#xff1a;事件的触发和事件的处理。事件的触发&#xff1a;在React中&#xff0c;事件可以通过用户与组件进行交互而触发&#xff0c;如点击、鼠标移动、键盘输入等。当用户与组件进行交互时&#xff0c;浏览器会…

Spring Security(二)OAuth2认证详解及自定义异常处理

1、OAuth2.0 简介 OAuth 2.0是用于授权的行业标准协议。OAuth 2.0为简化客户端开发提供了特定的授权流&#xff0c;包括Web应用、桌面应用、移动端应用等。 1.1 OAuth2.0 相关名词解释 Resource owner&#xff08;资源拥有者&#xff09;&#xff1a;拥有该资源的最终用户&…

每日题库:Huawe数通HCIA——14(30道)

所有资料均来源自网络&#xff0c;但个人亲测有效&#xff0c;特来分享&#xff0c;希望各位能拿到好成绩&#xff01; PS&#xff1a;别忘了一件三连哈&#xff01; 今日题库&#xff1a; 201. 如下图所示的网络&#xff0c;主机存在ARP缓存&#xff0c;主机A.发送数据包给…

Echarts 可视化图库案例(Make A Pie)

1、Made A Pie Made A Pie 2、可视化社区 &#xff08;Made A Pie 替代&#xff09; 可视化社区

在Android中使用 MQTT 服务实现消息通信

1.摘要 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输&#xff09;是一种轻量级的、基于发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的通信协议&#xff0c;最初由 IBM 在1999年开发。它设计用于在低带宽、不稳定的网络环境下…

产品创新管理:从模仿到引领,中国企业的创新之路

一、引言 在全球化竞争日益激烈的今天&#xff0c;科技创新已成为推动国家经济增长和社会进步的关键动力。中国自改革开放四十年来&#xff0c;在科技创新领域取得了举世瞩目的成就&#xff0c;从跟踪模仿到自主研发&#xff0c;再到自主创新、开放创新和协同创新并举&#xf…

【机器学习300问】110、什么是Lasso回归模型?

LASSO回归的全称是Least Absolute Shrinkage and Selection Operator&#xff0c;中文叫“最小绝对收缩和选择算子”&#xff0c;用一个比喻来初步感受一下它的作用&#xff1a; 想象你在整理一个杂乱无章的房间&#xff0c;里面堆满了各种物品&#xff08;代表众多的预测变量&…

【Vue】小兔鲜首页 - 拆分模块组件 - 局部注册

文章目录 一、分析二、局部注册 一、分析 小兔仙组件拆分示意图 开发思路 分析页面&#xff0c;按模块拆分组件&#xff0c;搭架子 (局部或全局注册) 根据设计图&#xff0c;编写组件 html 结构 css 样式 (已准备好) 拆分封装通用小组件 (局部或全局注册)&#xff0c;一般这…

人形机器人的应用场景

随着技术的不断进步和人工智能的快速发展&#xff0c;人形机器人逐渐走入人们的视野&#xff0c;并在各个领域中展现出广泛的应用潜力。本文将探讨人形机器人的主要应用场景&#xff0c;包括服务行业助手、教育领域应用、医疗保健助手、工业制造伙伴、家庭服务助手、军事领域执…

Develop an application using LangChain

模型、提示和解析器 模型 from langchain.chat_models import ChatOpenAIchat ChatOpenAI(temperature0.0) ChatOpenAI的默认模型为gpt-3.5-turbo 提示模板 from langchain.prompts import ChatPromptTemplatetemplate_string """把由三个反引号分隔的文…

浅析Git子模块

Git 子模块&#xff08;Submodule&#xff09;是 Git 的一个功能&#xff0c;允许将一个 Git 仓库作为另一个 Git 仓库的子目录。这使得可以在一个项目中包含并管理一个或多个独立的项目&#xff08;仓库&#xff09;。子模块保持自己的独立版本控制&#xff0c;使得主项目和子…

网络通信Socket的简单案例

1.客户端代码 import java.io.*; import java.net.Socket;public class GreetingClient {public static void main(String[] args) throws IOException {//准备目的地参数String ip "localhost";int port6006;//建立工人Socket client new Socket(ip, port);//建…

arcgis如何给没有连通的路打交点

1、在打交点的时候需要先有图层&#xff0c;图层的构建流程如下所示 1、找到目录 2、先新建一个文件夹 3、在新建的文件夹下新建一个文件地理数据库 4、在文件地理数据库下&#xff0c;新建一个要素类数据集 5、在要素类数据集下进行数据导入&#xff0c;选择单个导入 6、在要…

Meta Llama 3 .transpose().contiguous().view

Meta Llama 3 .transpose().contiguous().view() flyfish 参考地址 https://pytorch.org/docs/stable/generated/torch.transpose.html transpose美[trnspoʊz] 英[trnspəʊz;trɑːns-;-nz-] v. 使换位 / 转移 / 转换 / 调换n. <数>转置&#xff08;矩&#xff09…