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

Hive内部表和SparkSql中的Bucking

钱毅
2023-03-14
df.repartition(numBuckets, somecol)
              .write()
              .format("parquet")
              .bucketBy(numBuckets,col1)
              .sortBy(col1)
              .saveAsTable(hiveTableName);

这些查询是:select*from t1 where col1='123'[t1由col1 bucketted]select*from t1 where col2='123'[col2不是bucketting列]我的问题是

>

  • 如何确定在查询执行期间正在进行全表扫描还是正在进行相关的部分表扫描?
  • 我能从DAG或物理计划中得到任何信息吗?我两个都看过,但我看不出有什么不同,就像我在物理计划中看到的那样

    ==物理计划==*(1)项目[COL1#0,col2#1,COL3#2,COL4#3,COL5#4,COL6#5,COL7#6,COL8#7,COL9#8,COL9#8,COL10#9,COL11#10,COL12#11]+-*(1)过滤器(isnotnull(col2#1)&(col2#1=123))+-*(1)FileScan parquet Default.uk_geocrosswalk[COL1#0,col2#1,COL3#2,COL4#3,COL5#4,COL7#6,COL8#7,11]批处理:true,format:parquet,location:inmemoryfileindex[hdfs://url/a.parquet,partitionfilters:[],pushedfilters:[isnotnull(col2),EqualTo(col2,123)],readschema:struct

    在物理计划中,为什么要进行文件扫描?当表被创建为配置单元表时,它不应该执行HiveTableScan吗?

  • 共有1个答案

    钦高峯
    2023-03-14

    镶木地板是柱状的。从我的经验来看,拼花地板很快。columnar方面可以很好地解释相同的性能--无论是否key,数据格式物理上都是columnar。

    这是一个蜂巢桌,但使用拼花地板和扣饰,蜂巢/黑斑羚无法进入。由于它是拼花地板,蜂巢表扫描是不合适的。一个配置单元表可以有许多物理格式,文本,拼花,半兽人。

    您可以看到Filtering:PartitionFilters:[]、PushedFilters:[IsNotNull(col2),EqualTo(col2,123)],

     类似资料:
    • 本文向大家介绍hive内部表和外部表的区别相关面试题,主要包含被问及hive内部表和外部表的区别时的应答技巧和注意事项,需要的朋友参考一下 解答: 内部表:加载数据到hive所在的hdfs目录,删除时,元数据和数据文件都删除 外部表:不加载数据到hive所在的hdfs目录,删除时,只删除表结构。

    • 我在hdfs之上使用sparksql。 每个hdfs节点都运行一个spark从节点。 当我运行大型查询时,hdfs似乎在节点之间向spark从节点发送数据。 为什么hdfs不使用本地数据为本地spark提供服务? 所有任务都显示本地级别。 我甚至设置了spark.locality.wait=10000。 有什么遗漏或需要查看的吗? 谢谢,

    • Spark SQL也支持从Apache Hive中读出和写入数据。然而,Hive有大量的依赖,所以它不包含在Spark集合中。可以通过-Phive和-Phive-thriftserver参数构建Spark,使其 支持Hive。注意这个重新构建的jar包必须存在于所有的worker节点中,因为它们需要通过Hive的序列化和反序列化库访问存储在Hive中的数据。 当和Hive一起工作是,开发者需要提供

    • 一、分区表 1.1 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。 分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的 where 字句的中包含分区条件,则直接从该分区去查找,而不是扫描整个表目录,合理的分区设计可以极大提高查询速度和性能。 这里说明一下分区表并 Hive 独有的概念,实际上这个概念

    • 我正试图弄清楚如何在HIVE Metastore中查询表和列注释(描述)。如果有一种方法可以将注释添加到配置单元表/列中,那么不应该有一种方法可以查询/报告来自配置单元转移的注释吗? 请帮忙:) 向你致意,迈克尔