首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

最新Hive高频面试题新鲜出炉了!

优势是文件hadoop api中MapFile是相互兼容 3、RCFile 存储方式:数据行分块,每块存储。...,并且能跳过不必要读取; 4、ORCFile 存储方式:数据行分块 每块按照存储。...1)倾斜原因:map输出数据key Hash分配到reduce中,由于key分布不均匀、业务数据本身特、建表考虑不周、等原因造成reduce 上数据量差异过大。  ...条件,Hive只能使用1个reducer来完成笛卡尔积 20、行列过滤 处理:在SELECT中,只拿需要,如果有,尽量使用分区过滤,少用SELECT *。...行处理:在分区剪裁中,当使用外关联,如果将副表过滤条件写在Where后面,那么就会先全表关联,之后再过滤。 21、并行执行 Hive会将一个查询转化成一个或者多个阶段。

1K20

【最全大数据面试系列】Hive面试题大全

1.倾斜原因:map 输出数据 key Hash 分配到 reduce 中,由于 key 分布不均匀、业务数据本身特、建表考虑不周、等原因造成 reduce 上数据量差异过大。...④ count distinct 大量相同特殊值:count distinct ,将值为空情况单独处理,如果是计算 count distinct,可以不用处理,直接过滤,在最后结果中加 1。...优势是文件 hadoop api 中 MapFile 是相互兼容 3、RCFile 存储方式:数据行分块,每块存储。...结合了行存储存储优点:首先,RCFile 保证同一行数据位于同一节点,因此元组重构开销很低;其次,像存储一样,RCFile 能够利用列维度数据压缩,并且能跳过不必要读取; 4、ORCFile...存储方式:数据行分块 每块按照存储。

1.9K20

Hive千亿级数据倾斜解决方案(好文收藏)

数据倾斜解决方案 MapReduceSpark数据倾斜解决方案原理都是类似的,以下讨论Hive使用MapReduce引擎引发数据倾斜,Spark数据倾斜也可以此为参照。 1....当按照key进行两个表join操作,默认Hash操作会int型id来进行分配,这样所有的string类型都被分配成同一个id,结果就是所有的string类型字段进入到一个reduce中,引发数据倾斜...解决方案: 如果key字段既有string类型也有int类型,默认hash就都会int类型来分配,那我们直接把int类型都转为string就好了,这样key字段都为string,hash就按照string...from student group by s_age collect_list:将分组中转为一个数组返回。...但是对于collect_list这类要求全量操作所有数据中间结果函数来说,明显起不到作用,反而因为引入新作业增加了磁盘网络I/O负担,而导致性能变得更为低下。

78341

PySpark入门级学习教程,框架思维(中)

API SQL 写逻辑,会被Spark优化器Catalyst自动优化成RDD,即便写得不好也可能运行得很快(如果是直接写RDD可能就挂了哈哈)。...API 这里我大概是分成了几部分来看这些APIs,分别是查看DataFrameAPIs、简单处理DataFrameAPIs、DataFrame操作APIs、DataFrame一些思路变换操作...的话就是对整个DF进行聚合 # DataFrame.alias # 设置或者DataFrame别名 # DataFrame.groupBy # 根据某几列进行聚合,如有多用列表写在一起,如 df.groupBy...,通常用于分析数据,比如我们指定两个进行聚合,比如nameage,那么这个函数返回聚合结果会 # groupby("name", "age") # groupby("name") # groupby...("age") # groupby(all) # 四个聚合结果union all 结果 df1 = df.filter(df.name !

4.3K30

PySpark︱DataFrame操作指南:增删改查合并统计与数据处理

functions **另一种方式通过另一个已有变量:** **修改原有df[“xx”]所有值:** **修改类型(类型投射):** 修改列名 --- 2.3 过滤数据--- 3、-------...( "id" , "idx" ) — 2.3 过滤数据— #####过滤数据(filterwhere方法相同): df = df.filter(df['age']>21) df = df.where(...,另一为行总数 max(*cols) —— 计算每组中一或多最大值 mean(*cols) —— 计算每组中一或多平均值 min(*cols) —— 计算每组中一或多最小值...该方法接下来dropDuplicates()方法不传入指定字段结果相同。   ...互转 PandasSparkDataFrame两者互相转换: pandas_df = spark_df.toPandas() spark_df = sqlContext.createDataFrame

29.8K10

Hive重点难点:Hive原理&优化&面试(上)

order group by dealid; 当只有一个distinct字段,如果不考虑Map阶段Hash GroupBy,只需要将GroupBy字段Distinct字段组合为map输出key...数据倾斜解决方案 MapReduceSpark数据倾斜解决方案原理都是类似的,以下讨论Hive使用MapReduce引擎引发数据倾斜,Spark数据倾斜也可以此为参照。...当按照key进行两个表join操作,默认Hash操作会int型id来进行分配,这样所有的string类型都被分配成同一个id,结果就是所有的string类型字段进入到一个reduce中,引发数据倾斜...确实无法减少数据量引发数据倾斜 在一些操作中,我们没有办法减少数据量,如在使用 collect_list 函数: select s_age,collect_list(s_score) list_score...from student group by s_age collect_list:将分组中转为一个数组返回。

1.1K22

HiveSQL技术原理、优化与面试

order group by dealid; 当只有一个distinct字段,如果不考虑Map阶段Hash GroupBy,只需要将GroupBy字段Distinct字段组合为map输出key...数据倾斜解决方案 MapReduceSpark数据倾斜解决方案原理都是类似的,以下讨论Hive使用MapReduce引擎引发数据倾斜,Spark数据倾斜也可以此为参照。...当按照key进行两个表join操作,默认Hash操作会int型id来进行分配,这样所有的string类型都被分配成同一个id,结果就是所有的string类型字段进入到一个reduce中,引发数据倾斜...确实无法减少数据量引发数据倾斜 在一些操作中,我们没有办法减少数据量,如在使用 collect_list 函数: select s_age,collect_list(s_score) list_score...from student group by s_age collect_list:将分组中转为一个数组返回。

60011

二万字讲解HiveSQL技术原理、优化与面试

order group by dealid; 当只有一个distinct字段,如果不考虑Map阶段Hash GroupBy,只需要将GroupBy字段Distinct字段组合为map输出key...数据倾斜解决方案 MapReduceSpark数据倾斜解决方案原理都是类似的,以下讨论Hive使用MapReduce引擎引发数据倾斜,Spark数据倾斜也可以此为参照。...当按照key进行两个表join操作,默认Hash操作会int型id来进行分配,这样所有的string类型都被分配成同一个id,结果就是所有的string类型字段进入到一个reduce中,引发数据倾斜...确实无法减少数据量引发数据倾斜 在一些操作中,我们没有办法减少数据量,如在使用 collect_list 函数: select s_age,collect_list(s_score) list_score...from student group by s_age collect_list:将分组中转为一个数组返回。

84610

Hive重点难点:Hive原理&优化&面试

order group by dealid; 当只有一个distinct字段,如果不考虑Map阶段Hash GroupBy,只需要将GroupBy字段Distinct字段组合为map输出key...数据倾斜解决方案 MapReduceSpark数据倾斜解决方案原理都是类似的,以下讨论Hive使用MapReduce引擎引发数据倾斜,Spark数据倾斜也可以此为参照。...当按照key进行两个表join操作,默认Hash操作会int型id来进行分配,这样所有的string类型都被分配成同一个id,结果就是所有的string类型字段进入到一个reduce中,引发数据倾斜...确实无法减少数据量引发数据倾斜 在一些操作中,我们没有办法减少数据量,如在使用 collect_list 函数: select s_age,collect_list(s_score) list_score...from student group by s_age collect_list:将分组中转为一个数组返回。

1.2K10

PySpark SQL——SQLpd.DataFrame结合体

而为了实现这一目的,Spark团队推出SQL组件,一方面满足了多种数据源处理问题,另一方面也为机器学习提供了全新数据结构DataFrame(对应ml子模块)。...SQL中实现条件过滤关键字是where,在聚合后条件中则是having,而这在sql DataFrame中也有类似用法,其中filterwhere二者功能是一致:均可实现指定条件过滤。...groupbygroupBy是互为别名关系,二者功能完全一致。...:删除指定 最后,再介绍DataFrame几个通用常规方法: withColumn:在创建新或修改已有较为常用,接收两个参数,其中第一个参数为函数执行后列名(若当前已有则执行修改,否则创建新...,仅仅是在筛选过程中可以通过添加运算或表达式实现创建多个新,返回一个筛选新DataFrame,而且是筛选多少列就返回多少列,适用于同时创建多情况(官方文档建议出于性能考虑防止内存溢出,在创建多首选

9.9K20

SQL、PandasSpark:常用数据查询操作对比

SparkSpark中实现数据过滤接口更为单一,有wherefilter两个关键字,且二者底层实现是一致,所以实际上就只有一种用法。...但在具体使用中,where也支持两种语法形式,一种是以字符串形式传入一个类SQL条件表达式,类似于Pandas中query;另一种是显示以各对象执行逻辑判断,得到一组布尔结果,类似于Pandas中...接apply,实现更为定制化函数功能,参考Pandas中这3个函数,没想到竟成了我数据处理主力 SparkSparkgroupBy操作,常用包括如下3类: 直接接聚合函数,如sum、avg...而这在PandasSpark中并不存在这一区别,所以与where实现一致。 6)select。选择特定查询结果,详见Pandas vs Spark:获取指定N种方式。 7)distinct。...SQL中还有另一个常用查询关键字Union,在PandasSpark中也有相应实现: Pandas:concatappend,其中concat是Pandas 中顶层方法,可用于两个DataFrame

2.4K20

Spark 与 DataFrame

Spark 与 DataFrame 前言 在 Spark 中,除了 RDD 这种数据容器外,还有一种更容易操作一个分布式数据容器 DateFrame,它更像传统关系型数据库二维表,除了包括数据自身以外还包括数据结构信息...(data) 分别打印 Schema DataFrame,可以看到创建 DataFrame 自动分析了每数据类型 df.printSchema() ''' root |-- Category...# use write df.write.csv('hdfs://spark1:9000/data/test.csv') 写数据,也可以先将 Pandas-on-Spark Dataframe 转化为...() 根据字段进行 group by 操作 # Category 进行分类,求每类平均值 df.groupby('Category').mean().show() ''' +--------+--...('Value') # 排序 df.filter(df['Value'] > 100) # 过滤指定数据 df.withColumnRenamed('Value', 'Value_new'

1.7K10

【技术分享】Spark DataFrame入门手册

从上面的例子中可以看出,DataFrame基本把SQL函数给实现了,在hive中用到很多操作(如:select、groupBy、count、join等等)可以使用同样编程习惯写出spark程序,这对于没有函数式编程经验同学来说绝对福利...cache()同步数据内存 2、 columns 返回一个string类型数组,返回值是所有名字 3、 dtypes返回一个string类型二维数组,返回值是所有名字以及类型 4、 explan...")).show();       df.groupBy("age").avg().show();都可以 这里如果要把groupBy之后结果转换成一个Dataframe需要另一个函数转换一下,比如 count...df.withColumn("aa",df("name")).show(); 具体例子: 产看表格数据表格视图 4.jpg 获取指定并对齐进行操作 5.jpg 这里注意,这里$”field”表示类型是...column 6.jpg 根据条件进行过滤 7.jpg 首先是filter函数,这个跟RDD是类同,根据条件进行逐行过滤

4.6K60

专业工程师看过来~ | RDD、DataFrameDataSet细致区别

而右侧DataFrame却提供了详细结构信息,使得Spark SQL可以清楚地知道该数据集中包含哪些,每名称类型各是什么。DataFrame多了数据结构信息,即schema。...另一方面,Spark SQL在框架内部已经在各种可能情况下尽量重用对象,这样做虽然在内部会打破了不变性,但在将数据返回给用户,还会重新转为不可变数据。...上文讨论分区表提到分区剪 枝便是其中一种——当查询过滤条件中涉及到分区,我们可以根据查询条件剪掉肯定不包含目标数据分区目录,从而减少IO。...此外,Spark SQL也可以充分利用RCFile、ORC、Parquet等列式存储格式优势,仅扫描查询真正涉及,忽略其余数据。...如果我们能将filter下推到 join下方,先对DataFrame进行过滤,再join过滤较小结果集,便可以有效缩短执行时间。而Spark SQL查询优化器正是这样做

1.2K70

Spark 基础(一)

Transformation操作是指不会立即执行一系列操作,只有当遇到Action操作才会触发Spark进行数据计算处理。...在DataFrame上执行WHERE查询以进行筛选过滤。分组、聚合:groupBy()agg()。连接、联合:join()union()。...选择过滤:使用select()方法来选择特定或重命名列。使用where()filter()方法来过滤数据。...分组聚合:可以使用groupBy()方法按照一个或多个来对数据进行分组,使用agg()方法进行聚合操作(如求和、平均值、最大/最小值)。如df.groupBy("gender").count()。...模型调优:在模型调优需要注意过拟合欠拟合问题,另外通过并行化训练、优化内存使用等手段提高Spark训练模型效率。

77240

Hive函数

以name分区、日期排序计算,每行数据增一,即连续两天消费总额也就是前一行当前行聚合。...这里做索引应该只是记录某行各字段在Row Data中offset。 Row Data:存是具体数据,先取部分行,然后对这些行进行存储。...select * from emp; 2、Hive建表优化 分区表 分桶表 合适文件格式 3、HQL语法优化 3.1 裁剪分区裁剪 在生产环境中,会面临很多或者数据量很大,如果使用select...Hive在读取数据,可以只读取查询中所需要,忽视其他,这样做可以节省读取开销(中间表存储开销和数据整合开销) 裁剪:在查询只读取需要。 分区裁剪:在查询中只读取需要分区。...= 100000 # 开启数据倾斜,进行负载均衡 set hive.groupby.skewindata = true 当开启数据负载均衡,生成查询计划会有2个MRJob。

24330

利用PySpark 数据预处理(特征化)实战

前言 之前说要自己维护一个spark deep learning分支,加快SDL进度,这次终于提供了一些组件实践,可以很大简化数据预处理。...第一个是pyspark套路,import SDL一些组件,构建一个spark session: # -*- coding: UTF-8 -*- from pyspark.sql import SparkSession...接着,有一些NLP特有的操作了,我们需要对某些内容进行分词 ,同时将他们转化为数字序列(比如RNN就需要这种),并且把数字词还有向量对应关系给出。分词现在默认采用是jieba。...我们假设做是一个二分类问题,到目前为止,我们还没有分类字段,为了简单起见我随机填充了分类,利用前面的办法,自定义一个UDF函数,添加了一个like_or_not_like 。...最后返回df时候,过滤掉去胳膊少腿行。

1.7K30
领券