0%

一、存储格式行存储和列存储

  1. 行存储可以理解为一条记录存储一行,通过条件能够查询一整行数据。
  2. 列存储,以字段聚集存储,可以理解为相同的字段存储在一起。
阅读全文 »

官方文档:https://spark.apache.org/docs/latest/tuning.html

序列化在分布式应用的性能中扮演着重要的角色。格式化对象缓慢,或者消耗大量的字节格式化,会大大降低计算性能。通常这是在spark应用中第一件需要优化的事情。Spark的目标是在便利与性能中取得平衡,所以提供2种序列化的选择。

阅读全文 »

1.解决org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

winutils.exe和hadoop.dll匹配对应的版本,放入bin下即可,不需要放c盘系统位置,反而会导致失败……

hive 行列转换

列转行

使用函数:lateral view explode(split(column, ‘,’)) num

eg: 如表:t_row_to_column_tmp 数据如下,对tag列进行拆分

1

1
2
3
4
5
6
SQL代码:

select id,tag,tag_new
from t_row_to_column_tmp
lateral view explode(split(tag, ',')) num as tag_new
where id=212022894;

2

行转列

使用函数:concat_ws(‘,’,collect_set(column))

说明:collect_list 不去重,collect_set 去重。 column 的数据类型要求是 string

eg:如表:t_column_to_row ,根据id,对tag_new 进行合并

3

1
2
3
4
5
6
SQL代码1:

select id,
concat_ws(',',collect_set(tag_new)) as tag_col
from t_column_to_row
group by id;

4

1
2
3
4
5
6
SQL代码2:

select id,
concat_ws(',',collect_list(tag_new)) as tag_col
from t_column_to_row
group by id;

5