如何在 Spark 中设置 ORC 条带大小

2023-12-05

我正在尝试在 Spark(2.3) 中生成数据集并以 ORC 文件格式编写。 我正在尝试设置 ORC 条带大小和压缩大小的一些属性。我从中得到了暗示this所以帖子。但 Spark 不尊重这些属性,并且生成的 ORC 文件中的条带大小比我设置的要小得多。

val conf: SparkConf = new SparkConf().setAppName("App")
  .set("spark.sql.orc.impl", "native")
  .set("spark.sql.hive.convertMetastoreOrc", "true")
  .set("spark.sql.orc.stripe.size", "67108864")
  .set("spark.sql.orc.compress.size", "262144")
  .set("orc.stripe.size", "67108864")
  .set("orc.compress.size", "262144")

data.sortWithinPartitions("column")
  .write
  .option("orc.compress", "ZLIB")
  .mode("overwrite")
  .format("org.apache.spark.sql.execution.datasources.orc")
  .save(outputPath)

我还尝试将数据写为:

data.sortWithinPartitions("column")
  .write
  .option("orc.compress", "ZLIB")
  .option("orc.stripe.size", "67108864")
  .option("orc.compress.size", "262144")
  .mode("overwrite")
  .format("org.apache.spark.sql.execution.datasources.orc")
  .save(outputPath)

但没有运气。

ORC 文件转储的相关部分:

File Version: 0.12 with ORC_135
Rows: 3174228
Compression: ZLIB
Compression size: 32768
...
Stripe: offset: 3 data: 6601333 rows: 30720 tail: 2296 index: 16641
Stripe: offset: 6620273 data: 6016778 rows: 25600 tail: 2279 index: 13595
Stripe: offset: 12652925 data: 6031290 rows: 25600 tail: 2284 index: 13891
Stripe: offset: 18700390 data: 6132228 rows: 25600 tail: 2283 index: 13805
Stripe: offset: 24848706 data: 6066176 rows: 25600 tail: 2267 index: 13855
Stripe: offset: 30931004 data: 6562819 rows: 30720 tail: 2308 index: 16851
Stripe: offset: 37512982 data: 6462380 rows: 30720 tail: 2304 index: 16994
Stripe: offset: 43994660 data: 6655346 rows: 30720 tail: 2291 index: 17031

以下适用于 Spark 2.4.4。

spark = (SparkSession
     .builder
     .config('hive.exec.orc.default.stripe.size', 64*1024*1024)
     .getOrCreate()
     )
df = ...
df.write.format('orc').save('output.orc')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spark 中设置 ORC 条带大小 的相关文章

随机推荐

  • MySQL 安装:错误:无法构建 gem 本机扩展

    我正在尝试将 MySQL 安装到最新版本 因为某些安装过程中出现了错误 我运行命令gem install mysql我收到以下信息 构建本机扩展 这 可能需要一段时间 错误 错误 安装 mysql 错误 失败 构建 gem 本机扩展 Sys
  • R 中用于文本分类的 SVM

    我正在使用支持向量机对我的文本进行分类 但实际上我并没有得到结果 而是得到了数值概率 数据框 1 20 训练集 21 50 测试集 Updated ou lt structure list text structure c 1L 6L 1L
  • 功能区 GUI 指南

    我正在考虑在我的一个应用程序中实现功能区 GUI 当然希望遵守 MS 指南 因此它感觉就像普通的功能区等 但我正在尝试找出如何解决动态更改中的特定问题丝带 我正在创建一个概念游戏编辑器 请不要问为什么要使用功能区 因为这纯粹是一个概念想法
  • 有没有一种简单的方法从数组中删除重复元素?

    我想从数组中删除重复的元素 use itertools Itertools use std collections HashSet derive Debug struct Person name String age u32 fn main
  • 0-1多维背包

    因此 我正在尝试生成一种算法 该算法将找到 n 个物品 在我的情况下为 4 个 的最佳组合 这些物品只能在最大重量容量下放入背包一次 0 1 概括起来可能更有效 我想在我的背包中放置不超过四个独特的物品 以便它们的重量小于某个值 W 同时最
  • 如何在 facebook-api 中标记照片?

    我想问是否 如何可以使用 FB API 图形或 REST 来标记照片 我已经成功创建了一个相册并在其中上传了一张照片 但我仍然坚持标记 我已获得权限和正确的会话密钥 到目前为止我的代码 try uid facebook gt getUser
  • Rails 中的“新建”操作如何重定向到“创建”?

    在 Rails 中 我可以使用以下命令自动创建一组用于 CRUD 操作的路由resources在路线文件中 这创造了index new create edit show update并破坏路线 我了解这些路由如何工作的一般流程 通常当调用路
  • Java 如何将音频数据存储在字节数组中。

    谁能告诉我如何将音频文件 au 中的音频数据读取存储到字节数组中 我查看了 Oracle 上的 Java 文档 但我不知道如何使用这些信息来编写程序 我猜测 音频数据 您需要 AU 文件中的音频样本 不包括标头信息和元数据 如果您只想将文件
  • 获取跨域iframe的DOM内容[重复]

    这个问题在这里已经有答案了 我有一个用于跨域网站的 iframe 我想读取 iframe 的 DOM 我相信这是可能的 因为使用检查器 我什至可以修改 iframe 的 DOM 然而 我尝试以各种方式阅读它 都会遇到相同的来源政策 我想要的
  • Azure Devops 管道,用于使用 iPhone 应用程序和 watchos 应用程序构建 ios 捆绑包

    我想使用 Azure Devops 管道来构建 ios 捆绑包 其中包含 iphone 应用程序和 watchos 应用程序 有一个工作区包含 3 个应用程序 一个用于手机 两个用于手表 我的工作区 我的手机应用程序 我的手表应用程序 My
  • 我的组合框不显示我在 VBA 中添加的值

    我正在尝试向用户窗体中的组合框添加选项 当我运行代码时 Excel 不会给出任何错误 但是当用户窗体显示时 它不会显示我之前添加到组合框中的实体 也就是说 当我单击组合框时 它不显示任何选项 只显示一个空白行 就好像没有添加任何项目一样 这
  • 我怎样才能摆脱角度的 $parent

    Here s Plunker 我在带有 ng include 的控制器中有一个外部模板 它根据按钮的单击事件显示和隐藏 它按要求工作 但在 ng include 模板中使用 parent 还有其他更好的方法吗 Html div div di
  • 如何从 C++ 生成均匀分布在 0 和 1 之间的随机双精度数?

    如何从 C 生成均匀分布在 0 和 1 之间的随机双精度数 当然我可以想到一些答案 但我想知道标准做法是什么 良好的标准合规性 随机性好 速度好 对于我的应用程序来说 速度比随机性更重要 多谢 PS 如果重要的话 我的目标平台是 Linux
  • Node.js:从不同域加载页面的 html

    我想知道如何加载托管在不同域上的 HTML 我正在使用 JavaScript 并且想要创建一个书签 以便我能够解析外部 HTML 我已经在谷歌上搜索了几个小时 但毫无结果 JavaScript 不允许发出跨域请求 这是一个很大的安全风险 相
  • 不计算列中重复值的值的累积和

    我在 R 中有这样的数据 x lt c 1 2 2 3 4 4 7 8 y lt c 300 200 200 150 100 100 30 20 df lt data frame x y 数据集的累积为 cum df lt data fra
  • 需要帮助防止无限循环。属性设置

    所以我有一个颜色选择器 用户可以使用 RGB 或 HSB 选择颜色 每个值都有滑块 属性 例如 当用户设置红色时 我将计算 HSB 值以反映新的颜色值 当用户设置 Hue 时 RGB 值将从 HSB 值重新计算 但请注意那里有一个循环 当我
  • Azure AD B2C:User.Identity.Name 为 null,但 User.Identity.m_instance_claims[9] 具有名称

    用户通过我的 Azure AD B2C Web 应用程序身份验证后 我尝试检索User Identity Name 然而 它是空的 然而 User Identity m instance claims 9 如下面的屏幕截图所示 确实具有正确
  • 如何以编程方式隐藏选项卡栏,然后展开视图以适合

    我从这个问题中得到了代码 如何以编程方式隐藏 UITabBarController 这很棒 但是视图现在无法扩展以适应选项卡栏留下的空间 我已经为视图设置了适当的 UIViewAutoresizingMasks 但我假设仅仅因为它的隐藏并不
  • 如何在文本按钮上放置图标?

    我想在同一个按钮上同时显示图像图标和文本 例如在 Word 中 我在按钮上设置了图标 但文本消失了 HANDLE hBmp HBITMAP LoadImage g hDllInstance MAKEINTRESOURCE IDB BITMA
  • 如何在 Spark 中设置 ORC 条带大小

    我正在尝试在 Spark 2 3 中生成数据集并以 ORC 文件格式编写 我正在尝试设置 ORC 条带大小和压缩大小的一些属性 我从中得到了暗示this所以帖子 但 Spark 不尊重这些属性 并且生成的 ORC 文件中的条带大小比我设置的