Skip to Content
Spark快速大数据分析(第2版)
book

Spark快速大数据分析(第2版)

by Jules S. Damji, Brooke Wenig, Tathagata Das, Denny Lee
November 2021
Intermediate to advanced
340 pages
10h 46m
Chinese
Posts & Telecom Press
Content preview from Spark快速大数据分析(第2版)
122
5
-- SQL查询
SELECT
id, collect_list(value + 1)
AS
values
FROM
(
SELECT
id, EXPLODE(values)
AS
value
FROM
table) x
GROUP BY
id
collect_list()
返回的是未去重的对象列表,由于
GROUP BY
语句会触发数据混洗操作,因
此重新组合的数组顺序和原数组不一定相同。因为
values
可能维度很高(是一个非常宽或
非常长的数组),而我们又在使用
GROUP BY
,所以这种方法可能开销巨大。
5.4.2
 方式
2
用户自定义函数
要想执行等价的任务(为
values
中的每个元素加
1
),也可以创建
UDF
,用
map()
迭代各
元素(
value
)并执行额外的操作。
val
plusOneInt = (values: Array[Int]) => {
values.map(value => value + 1)
}
// 注册UDF
spark.udf.register("plusOneInt", plusOneInt)
然后可以用如下方式在
Spark SQL
中使用这个
UDF
spark.sql("SELECT id, plusOneInt(values) AS values FROM table").show()
由于没有顺序问题,这种方法比使用
explode()
collect_list()
好一些,但序列化和反
序列化过程本身开销较大。同样值得注意的是,
collect_list() ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

数据驱动力:企业数据分析实战

数据驱动力:企业数据分析实战

Carl Anderson
数据压缩入门

数据压缩入门

Colt McAnlis, Aleks Haecky
解密金融数据

解密金融数据

Justin Pauley

Publisher Resources

ISBN: 9787115576019