java - 在 Spark 中读取两个不同的 ORC 架构文件

标签 java apache-spark hive orc

我们正在以 ORC 格式将处理输出保存到 HDFC。现在我们有具有多个架构的文件,我想读取所有文件并创建数据集。

一个选择是我将编写一些作业并将所有这些文件转换为单个模式,我想避免 bcz 数据太大,并且这是一次性解决方案,如果有一天模式再次更改我必须重新生成所有数据

我的问题是有什么机制可以让我读取这些文件 假设我将在阅读本文时提供更高的模式,如果任何 orc 文件中不存在某些字段,则阅读器将自动分配空值。

最佳答案

我有一个similar problem 。 ORC模式合并是开放的feature request ,我们也像您评论中的其他用户一样切换到 Parquet 。

仍然可以(不推荐,因为它非常慢)逐个加载文件并将其保存到 .parquet,然后使用自动模式合并加载所有 .parquet 文件并将大量内存保存到 .orc

关于java - 在 Spark 中读取两个不同的 ORC 架构文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45832355/

相关文章:

java - 如何构建表单

java - 如何使用 Java 8 和 Spark 2.3.0 创建 SparkSession

java - 非驱动程序、非工作人员是否可以创建 Spark session 并将 CSV 文件读入数据集?

hive - 如何将字符串转换为配置单元中的结构数组并爆炸?

java - 使用 Java 8 流创建 Collection<Stream>

java - Isogram-一个没有重复字母的单词

apache-spark - Spark SQL 窗口/分析函数的综合引用在哪里?

performance - 自定义映射器和 Reducer 与 HiveQL

配置单元:将 array<struct<key:string,value:array<string>>> 转换为 map<string,array<string>>

Java VisualVM 内存采样器 - 如何获取特定类的大小