Ume*_*cha 7 hive apache-spark apache-spark-sql
根据官方文档我们无法将Spark 特定的hive分区添加到DataFrame
Till Spark 1.5以下用于工作,数据框将具有实体列和数据,如下所示 -
DataFrame df = hiveContext.read().format("orc").load("path/to/table/entity=xyz")
Run Code Online (Sandbox Code Playgroud)
但是,这在Spark 1.6中不起作用.
如果我给出如下所示的基本路径,它不包含我想要在DataFrame中的实体列,如下所示 -
DataFrame df = hiveContext.read().format("orc").load("path/to/table/")
Run Code Online (Sandbox Code Playgroud)
如何在数据框中加载特定的配置单元分区?删除此功能的驱动因素是什么?
我相信它很有效率.Spark 1.6中是否有替代方案?
根据我的理解,Spark 1.6加载所有分区,如果我过滤特定分区它效率不高,它会因为数千个分区加载到内存而不是特定分区而中断内存并抛出GC(垃圾收集)错误.
请指导.提前致谢.
要使用Spark 1.6在DataFrame中添加特定分区,我们必须执行以下第一个设置basePath,然后提供需要加载的分区路径
DataFrame df = hiveContext.read().format("orc").
option("basePath", "path/to/table/").
load("path/to/table/entity=xyz")
Run Code Online (Sandbox Code Playgroud)
因此,上面的代码只会加载DataFrame中的特定分区.
| 归档时间: |
|
| 查看次数: |
4729 次 |
| 最近记录: |