当前位置: 首页 > 知识库问答 >
问题:

我们可以在同一个拼花文件中每个行组有不同的模式吗?

仲孙善
2023-03-14

在创建拼花文件时,我们可以在每个行组中使用不同的模式吗?在这种情况下,页脚将合并所有行组中的所有模式,但每个行组的模式将不同。这是公认的拼花格式吗?拼花规范是否清楚地表明模式不能在同一拼花文件中按行组更改?

官方规范对这一部分不是很具体,但当我们以这种方式编写文件时,Spark无法读取。

我尝试编写这样的文件和阅读使用spark.read.parquet和我得到以下错误

// this line works fine and it shows the schema from the footer where we have a unioned schema of all the rowgroups.
var df = spark.read.option("mergeSchema", "true").parquet("abc.parquet") 

// but when I try to do df.show() it throws an error
df.show()

<代码>组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段10.0中的任务0失败了4次,最近的失败:阶段10.0中的任务0.3丢失(TID 86,10.139.64.6,执行器0):java。lang.IllegalArgumentException:[可见性\u值\u字符串]可选二进制可见性\u值\u字符串(UTF8)不在存储中:

这里的规范只是说列应该与FileMetadata中的顺序相同,我将其解释为,我可以在随后的行组中拥有更多列。

该规范只说明每个行组中的模式必须包含与FileMetadata相同顺序的列,但并没有真正说明它应该包含所有列。在这种情况下,后续行组中是否可以有更多列?

row group 1 -> col1, col2
row group 2 -> col1, col2, col3
row group 3 -> col1, col2, col3, col4
file metadata -> col1, col2, col3, col4

这是一种可接受的拼花地板格式吗?如果不是,为什么?

共有1个答案

周麒
2023-03-14

单个文件需要内部一致,但当您有多个文件时,可以有“兼容”但不同的模式

 类似资料:
  • 在Spark 2.1中,我经常使用类似的东西 加载拼花文件文件夹,即使使用不同的模式。然后,我使用SparkSQL对数据帧执行一些SQL查询。 现在我想试试黑斑羚,因为我读了这篇维基文章,其中包含如下句子: Apache Impala是一个开源的大规模并行处理(MPP)SQL查询引擎,用于存储在运行Apache Hadoop[…]的计算机集群中的数据。 读取Hadoop文件格式,包括text、LZ

  • 问题内容: 在Go中,我们可以使用每个键的锁定来同步地图的每个键吗?是否始终需要地图级别的全局锁定?该文档说,任何对map的访问都不是线程安全的。但是,如果存在密钥,那么可以将其单独锁定吗? 问题答案: 不完全正确,但是如果您仅从地图上读取指针并修改目标对象,那么您就无需修改地图本身。

  • null null 这将创建2行,第一行高度为100px,第二行高度为。第二行中的2列具有宽度。 是否可以通过CSS网格/FlexBox将第2行的2列水平居中?即。每行的列数不同。 我正试图解决浏览器中CSS网格框架的一个琐碎的使用问题。如果使用FlexBox构建网格,这是很容易实现的。 但是我能用CSS网格实现它吗? 这里是一个我试图实现的代码本演示。

  • 我在文档中读到,通过在simulation类中为不同的类路径添加新的行,我们可以运行多个功能文件。有没有一种方法可以让我们像在FeatureRunner文件中一样运行属于同一个包的多个功能文件?

  • 我需要在MongoDB上编写一些复杂的查询和一些简单的查询。我可以将MongoRepository用于简单查询,将MongoTemplate与查询或条件一起用于复杂查询实现相同的应用程序吗。 在相同的应用程序中同时使用MongoTemplate和MongoRepositories,这是一个好的设计吗。这种方法有什么缺点吗。 还有,编写包含大量谓词的复杂查询的最佳方法是什么,这些谓词涉及and、or

  • 我们正在使用DropWizard v0.8.1,我们想知道我们是否可以有一个默认值的YAML文件,然后将被特定的环境文件(如)覆盖。 Spring boot以这种方式工作,其中文件充当默认值的模板,然后将覆盖重复的属性。 我们不想复制所有重复的属性,只想在一个文件中更新默认值。