Skip to Main Content
Spark高级数据分析(第2版)
book

Spark高级数据分析(第2版)

by Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills
June 2018
Beginner to intermediate content levelBeginner to intermediate
246 pages
6h 57m
Chinese
Posts & Telecom Press
Content preview from Spark高级数据分析(第2版)
162
8
| 2| 843|
| 3| 197|
| 4| 86|
| 5| 55|
...
现在看起来都不错,只有一条打车记录除外,它的乘车时间为
-
8
小时!难道是电影《回
到未来》中德洛雷安在纽约开出租挣外快?让我们来一探究竟:
taxiGood.
where(hoursUDF($"pickupTime", $"dropoffTime") < 0).
collect().
foreach(println)
这给出了那条奇怪的记录,打车开始于
1
25
日下午
6
点,在同一天上午
10
点前结束。
我们看不出来这条打车记录到底哪里出了错。但是由于看起来只有一条记录是这种情况,
直接将它从记录中去掉应该没问题。
现在观察剩余的那些小时数大于零的记录,绝大多数出租车乘坐记录看起来不超过
3
个小
时。我们将对
taxiGood
RDD
进行过滤,只需要关心“典型”的乘坐记录的分布而暂时忽
略那些异常情况。因为在
Spark SQL
中表示这个过滤条件要容易一些,所以用“
hours
”这
个名字到
Spark SQL
中注册我们的
hours
函数,以便在
SQL
表达式中使用它:
spark.udf.register("hours", hours)
val taxiClean = taxiGood.where(
"hours(pickupTime, dropoffTime) BETWEEN 0 AND 3"
)
UDF
用还是不用
通过
Spark SQL
,很容易将业务逻辑嵌入到标准
SQL
可用的函数中,就像我们对
hours
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.
Start your free trial

You might also like

大数据项目管理:从规划到实现

大数据项目管理:从规划到实现

Ted Malaska, Jonathan Seidman
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787115482525