Spark读取不同版本的Parquet文件

2024-01-21

我使用 Version1 架构生成了一年多的镶木地板文件。随着最近的架构更改,较新的镶木地板文件具有 Version2 架构额外列。

因此,当我从旧版本和新版本一起加载镶木地板文件并尝试过滤更改的列时,我得到一个异常。

我希望 Spark 读取旧文件和新文件,并在不存在列的情况下填充空值。是否有解决方法,当未找到列时 Spark 填充空值?


SparkSQL 本身支持 parquet 文件的模式合并。您可以阅读所有相关内容官方文档在这里 http://spark.apache.org/docs/latest/sql-programming-guide.html#schema-merging

与 ProtocolBuffer、Avro 和 Thrift 一样,Parquet 也支持 schema 进化。用户可以从简单的架构开始,逐步添加 根据需要向架构添加更多列。这样,用户最终可能会 具有不同但相互兼容的多个 Parquet 文件 模式。 Parquet 数据源现在能够自动检测 这种情况并合并所有这些文件的模式。

由于模式合并是一个相对昂贵的操作,并且不是一个 在大多数情况下,我们默认将其关闭,从 1.5.0。您可以通过以下方式启用它

  1. setting data source option mergeSchema to true when reading Parquet files (as shown in the examples below), or

  2. setting the global SQL option spark.sql.parquet.mergeSchema to true.

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

Spark读取不同版本的Parquet文件 的相关文章

随机推荐

  • 操作 Eclipse 插件的 java 类路径?

    我正在开发一个插件 其中包含 Eclipse 的自制视图 当我运行插件并使用显示类路径时System getProperty java class path 我得到这个作为输出 D Programs eclipse plugins org
  • p:commandbutton 执行与我要求相反的操作

    我一直在尝试禁用按钮 直到操作完成 然后这应该启用该按钮 按钮的代码
  • Tomcat 7 java.lang.NoClassDefFoundError:javax / el / ELManager [重复]

    这个问题在这里已经有答案了 我想将我的应用程序部署到版本 7 中的 tomcat 但出现以下异常java lang NoClassDefFoundError javax el ELManager但如果我尝试将此应用程序部署到 tomcat
  • PHP 将 iTXt 注释添加到 PNG 图像

    我到处都在寻找这个 我知道可以使用 net 中的一些库来完成 但我真的希望我的脚本生成 标记 图像 原因是我们是论坛主办方 和主题制作公司合作 主题制作公司希望我们能够追踪任何非法分发的主题 我在 GCHQ CanYouCrackIt 练习
  • 如何通过回调从 C# 方法创建 F# 异步?

    假设我有一些需要回调的 C 代码 void DoSomething Action
  • 检查鼠标是否在元素的边界内

    javascript 有没有办法检查鼠标位置当前是否位于元素的边界内 您有什么可以建议的功能或快速的方法吗 if document mouse x gt ele offsetLeft document mouse x lt ele offs
  • 打印错误消息的正确方法

    这一行是在 Bash 中打印错误消息的最佳方法吗 echo Error banana gt 2 我需要更新数十个 Bash 脚本 这些脚本使用所有不同的方式记录错误 我不妨选择 正确 的方式来执行此操作并遵守我所做的标准 在我的 bash
  • 如何将base64编码的图像传递给Tensorflow预测?

    我有一个 google cloud ml 模型 我可以通过传递 float32 的 3 维数组来运行预测 instances input 0 0 0 5 0 8 然而 这不是传输图像的有效格式 所以我想传递 base64 编码的 png 或
  • 在Notepad++中如何找到字符串的第n次出现

    我有一个巨大的文本文件 其中的记录由字符串 MSH 标识 我需要找到第 200 条记录 我希望在 Notepad 中可以使用一个正则表达式 它可以让我找到字符串 MSH 第 200 次出现的位置 如果您的文件只是一个由字符串 MSH 分隔的
  • 从 cert 文件到 pfx 文件的转换

    是否可以将 cert 文件转换为 pfx 文件 我尝试将我的 cerf 文件导入 IE 但它从未显示在 个人 选项卡下 因此我无法在那里导出 我正在寻找是否有可用的替代方案 仅供参考 cerf 文件是通过使用 keytool 创建的 然后导
  • 模块构建失败(来自 ./node_modules/mini-css-extract-plugin/dist/loader.js):ReferenceError:文档未定义

    好的 基本上我们在部署之前使用 webpack 来捆绑我们的资源 然而 现在我们还想通过 webpack 捆绑我们的 sass 文件 因为它简化了我们的构建过程 一切进展顺利 但现在bundle js太大而无法在生产中部署 所以我想拆分bu
  • SPA(单页应用程序)是否适合针对移动设备的网站?

    我计划创建一个主要针对手机的网站 其中包含大约 20 个不同的视图 页面 如果我想专注于在页面之间切换时使用户体验非常灵敏 如快速 那么将网站创建为单页应用程序是一个好主意吗 我知道您可以采取许多技巧来提高移动网站的整体性能 http ww
  • 如何通过Axios JavaScript HTTP请求发送JSON或Form数据到FastAPI后端?

    我有一个 FastAPI 后端配置如下 app post engines completions async def read completions engine id str prompt Optional str None max t
  • 如何使用 MapStruct 将字符串转换为映射?

    I have Story我的 Spring Boot 应用程序中的实体 它有String field storyInfo其中包含 title random title description random description For m
  • Java REST 实现:Jersey 与 CXF [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您认为这两个库之间的优点 缺点是什么 这两个哪个最适合生产环境 顺便说一句 我将使用 JSON 而不是 XML 我还想知道哪个库最受社
  • 在自定义上下文菜单中实现“粘贴”

    这是我试图解决的问题 我不确定这是否可能 我有一个网络应用程序 我需要启用从该应用程序到该应用程序的数据复制 粘贴 但我在粘贴时遇到问题 如果我使用 CTRL V 快捷键过去 我可以使用以下命令从剪贴板获取数据 e originalEven
  • OpenCV 2.4.5 中的访问冲突读取

    我尝试了有关匹配许多图像的示例代码OpenCV 2 4 5我修改了该代码 我找到了错误代码 Unhandled exception at 0x585a7090 in testing exe 0xC0000005 Access violati
  • Javascript扩展对象问题

    我有以下代码 this myObject key1 val1 key2 val2 this aMethod function newObject 这里我想要一个新对象 可能继承自this myObject 包含所有内容this myObje
  • 给定一个 nxn 邻接矩阵,如何计算图中三角形的数量(Matlab)?

    我编写了一个函数 给定 n 生成随机 nxn 邻接矩阵 我想知道是否有一种方法可以计算矩阵表示的图中三角形的数量 The i j 中的元素n 邻接矩阵的幂A计算长度路径的数量n开始于i并结束于j 三角形是一条长度为 3 起始点和终止点相同的
  • Spark读取不同版本的Parquet文件

    我使用 Version1 架构生成了一年多的镶木地板文件 随着最近的架构更改 较新的镶木地板文件具有 Version2 架构额外列 因此 当我从旧版本和新版本一起加载镶木地板文件并尝试过滤更改的列时 我得到一个异常 我希望 Spark 读取