Learning Spark [6] - Spark SQL高级函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Learning Spark [6] - Spark SQL高级函数相关的知识,希望对你有一定的参考价值。

参考技术A

collect常用的有两个函数:collect_list(不去重)和collect_set(去重)

collect_list

collect_set

explode的定义是将数组的每个数据展开,如下我们就可以将上面的dataframe还原为最初的样式。

posexplode可以在拆分列的同时,增加一列序号

但是如果表内有如下两个一一对应的数组,我们该如何拆分呢?

按照直觉,我们尝试分别explode()

解决这个问题,我们需要使用 LATERAL VIEW

lateral view可以理解为创建了一个表,然后JOIN到了查询的表上,这样就避免了两个生成器的问题

split则是将一个字符串根据分隔符,变化为一个数组

transform会引用一个函数在数组的每个元素上,返回一个数列

filter为通过条件删选,返回一个数列

exists为判断是否包含该元素,返回一个布尔值

reduce为通过两个函数,将数组聚合为一个值,然后对该值进行运算

Reference
Learning Spark 2nd - Lightning Fast Big Data Analysis by Jules S. Damji, Brooke Wenig, Tathagata Das, and Denny Lee

以上是关于Learning Spark [6] - Spark SQL高级函数的主要内容,如果未能解决你的问题,请参考以下文章

Spark 1.6.0 DenseMatrix 更新值

在执行spar-sql程序中报错:java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/s

Spark启动时报错localhost: failed to launch: nice -n 0 /home/chan/spark/spark-2.4.3-bin-hadoop2.7/bin/spar

spark

Spark 不显示 Hive 表中的数据

Learning Spark——使用spark-shell运行Word Count