Hive “alter table <表名称> 连接”如何工作?

2024-03-12

I have n(large)我想要合并的小尺寸 orc 文件的数量k(small)大型 orc 文件的数量。

这是使用完成的alter table table_name concatenateHive 中的命令。

我想了解 Hive 是如何实现这一点的。 我希望使用 Spark 来实现此功能,并根据需要进行任何更改。

任何指点都会很棒。


根据更改表/分区连接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/PartitionConcatenate:

如果表或分区包含许多小的 RCFiles 或 ORC 文件,那么上面的命令会将它们合并成更大的文件。对于 RCFile,合并发生在块级别,而对于 ORC 文件,合并发生在条带级别,从而避免了解压缩和解码数据的开销。

Also 兽人条纹 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC#LanguageManualORC-Stripes:

ORC 文件的主体由一系列条纹组成。条纹是 大(通常~200MB)并且彼此独立,并且通常 由不同的任务处理。柱状的定义特征 存储格式是每一列的数据单独存储 并且从文件中读取的数据应该与 读取的列数。 在ORC文件中,每一列都存储在多个流中,这些流存储在 文件中彼此相邻。例如,整数列是 表示为两个流 PRESENT,其中使用一个流,每个流一位 value 记录该值是否为非空,DATA 记录该值 非空值。如果条带中所有列的值都不为空, 条带中省略了 PRESENT 流。对于二进制数据,ORC 使用三个流 PRESENT、DATA 和 LENGTH,存储长度 每个值。每种类型的详细信息将在 以下小节。

要在 Spark 中实现,您可以使用SparkSQL http://spark.apache.org/docs/latest/sql-programming-guide.html#sql在 Spark Context 的帮助下:

scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

scala> sqlContext.sql("Your_hive_query_here")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive “alter table <表名称> 连接”如何工作? 的相关文章

随机推荐

  • 在 Pytorch 中执行优化时如何对变量应用界限?

    我正在尝试使用 Pytorch 进行非凸优化 试图最大化我的目标 因此在 SGD 中最小化 我想限制因变量 x gt 0 并且 x 值的总和小于 1000 我认为我已经以斜坡惩罚的形式正确实施了惩罚 但我正在努力解决 x 变量的边界问题 在
  • 表单提交 keyCode == "enter" (13)

    I need to submit the content of a form when I press the Enter key but only if the form has no error message I built up t
  • 如何在react中进行fetch?

    下午好 我从服务器获取json 我处理它 但是对渲染的调用发生了2次 Google 在构造函数中创建一个空对象 如果该对象没有属性 则返回 undefined 但我也有数组 应用程序从中崩溃 我附上代码 如何将数据取出状态 是否可以在渲染中
  • NSJSON序列化

    我在使用某些公共 json 服务时遇到问题 以这种方式格式化的服务 jsonFlickrFeed title Uploads from everyone link http www flickr com photos description
  • Android 本地化 es-r419

    我正在本地化我的应用程序 支持的语言 区域之一是 Espanol 419 Android 不支持命名约定values es r419 但它接受values en rGB 我应该使用什么名称才能使其正常工作 我不知道r419从何而来 我唯一能
  • 让左栏一直向下延伸

    我已经为此绞尽脑汁近三天了 我读过很多关于 3col 拉伸 设置清晰和使用绝对位置和相对位置的文章 很多是矛盾的 我认为 我想要一个非常简单的布局 我想要左侧的导航 div 左侧有两个 div 和一个页脚 如果我使用表格 它会是这样的 ta
  • 如何在不打开 Flutter 上默认电子邮件应用程序的情况下发送邮件?

    是否可以在不打开默认电子邮件应用程序的情况下发送电子邮件 直接地 我用了两个插件 但两者都是打开默认应用程序 Using flutter email sender plugin final Email email Email body Ve
  • 为什么我不能将 PHP 类实例存储为 SESSION 变量

    我有一个 PHP 脚本 可以通过 Dojo Ajax xhrGet 调用以两种方式进行调用 第一次使用 init 参数调用它 这会导致脚本创建 StateList 类的实例并读入状态名称文件 session start include St
  • 使用 Sharp 库的 Firebase 部署功能在 Google Cloud Build 中失败

    从 Bitbucket Pipelines 迁移到 Google Cloud Build 后 Firebase 部署失败 该设置在 Bitbucket Pipelines 和本地都成功部署 除了下面的错误之外 没有给出进一步的解释 我对代码
  • 如何启用码头登录?

    我正在尝试调试我的情况 其中简单的 ActiveWeb 应用程序未在 Jetty 下运行 它的行为就像不存在任何用于请求处理的类一样 并返回错误 404 问题不在于 ActiveWeb 这是关于杰蒂的 如何发现 Jetty 有一些 Web
  • 谷歌浏览器扩展:如何多次打开新的浏览器窗口?

    我的 Chrome 扩展程序使用这个简单的 JS 打开一个新的浏览器窗口 chrome browserAction onClicked addListener function tab var room new Date getTime w
  • ViewPager 使用视图而不是片段

    I ve a ViewPager现在使用Views代替Fragments显示每个选项卡 每个选项卡都会扩展相同的布局文件 Overview In this ViewPager 我应该将地雷添加为选项卡 因此基本上每个选项卡都对应于一个特定的
  • 如何不使用gopath导入本地包

    我用过GOPATH但对于我当前面临的这个问题 它没有帮助 我希望能够创建特定于项目的包 myproject binary1 go binary2 go package1 go package2 go 我尝试了多种方法 但如何得到packag
  • 无法在 Electron 应用程序中使用 Discord OAuth2

    我正在尝试创建一个 Electron 应用程序 使用 Electron net 和 MVC 并使用 Discord 的 OAuth2 进行用户登录 然而 当加载 OAuth2 页面时 Discord 认为我使用的 Discord 安装已损坏
  • 如何捕获远程系统网络流量?

    我一直在使用wire shark来分析socket程序的数据包 现在我想看看其他主机的流量 因为我发现我需要使用只有Linux平台支持的监控模式 所以我尝试了但我无法捕获在我的网络中传输的任何数据包 列为捕获的 0 个数据包 设想 我有一个
  • 升级到 flutter 3.0.1 后更新 CocoaPods 时出错

    我在用MacBook Pro M1 芯片 OS is MacOS 蒙特利 12 3 1 今天我将flutter从2 5 4升级到3 0 1 我可以在 Android 中完美运行我的项目 但是在 iOS 中我收到以下错误 Launching
  • 关闭 seeds.rb 中的验证

    如何关闭验证Rails 3 2 3 in seeds rb 我做了这个 u1 User create email email protected cdn cgi l email protection password 123 validat
  • 如何使用 pyminizip 在 Python 3.x 中创建临时 ZIP?

    我需要创建一个临时 zip 文件来存储文件 该 ZIP 文件需要加密 所以zipfile不会在这里做的伎俩 该文件将被进一步加密 ZIP 将再次加密为另一个文件 因此压缩文件被用作减小其大小以实现更快的互联网传输以及第一层加密的一种方法 这
  • 使用 setjmp / longjmp 的通信协议和本地环回

    我使用共享内存和共享互斥体编写了一些相对简单的通信协议 但后来我想扩展支持以在使用不同运行时的两个 dll 之间进行通信 很明显 如果你有一些std vector lt int64 gt 和两个 dll 一个 vs2010 一个 vs201
  • Hive “alter table <表名称> 连接”如何工作?

    I have n large 我想要合并的小尺寸 orc 文件的数量k small 大型 orc 文件的数量 这是使用完成的alter table table name concatenateHive 中的命令 我想了解 Hive 是如何实