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

如何在DataFrame Spark1.6中加载特定的配置单元分区?

谷梁英资
2023-03-14

从Spark1.6开始,根据官方文档,我们不能向DataFrame添加特定的配置单元分区

DataFrame df = hiveContext.read().format("orc").load("path/to/table/entity=xyz")
DataFrame df = hiveContext.read().format("orc").load("path/to/table/") 

我相信这很有效。在Spark1.6中有没有替代方案可以实现这一点?

根据我的理解,Spark1.6加载了所有分区,如果我筛选特定分区,它效率不高,它会击中内存并抛出GC(垃圾收集)错误,因为成千上万的分区被加载到内存中,而不是特定的分区。

共有1个答案

谈渊
2023-03-14

要使用Spark1.6在DataFrame中添加特定的分区,我们必须首先设置basePath,然后给出需要加载的分区路径

DataFrame df = hiveContext.read().format("orc").
               option("basePath", "path/to/table/").
               load("path/to/table/entity=xyz")

因此,上面的代码将只加载DataFrame中的特定分区。

 类似资料:
  • 我正在使用Spark2.0,我想知道,是否可以列出特定配置单元表的所有文件?如果是这样,我可以直接使用spark增量地更新这些文件。如何向配置单元表添加新分区?有没有关于蜂巢转移瘤的api我可以从Spark使用? 有什么方法可以获得映射dataframe的内部配置单元函数吗 我的主要理由是对表进行增量更新。现在,我知道的唯一方法是SQL+,这不是很有效,因为他将覆盖所有表,而我主要感兴趣的是对某些

  • 想知道在StanfordCorenlp中是否有一种方法来加载特定的分类器。我试图解决一个问题,其中3个分类器在默认情况下被加载,第三个分类器不可靠地返回ner标记,并导致应用程序中的不一致性。想知道加载English.all.3Class对于基本的命名实体标记足够好,以及下面列表中其他两个的相关性是什么。 edu/stanford/nlp/models/ner/english.all.3class

  • 我试图为我的表创建分区,以便更新一个值。 这是我的样本数据 我想把珍妮特的部门更新到B。 为此,我创建了一个以Department为分区的表。 创建外部表trail(EmployeeID Int、FirstName String、Designation String、Salary Int),按(Department String)行格式分隔字段进行分区,以“,”location'/user/sre

  • 我在部署一个使用部署系统注入的SPI实现的Quarkus应用程序时遇到了一个问题。 感兴趣的事情: null