小编Geo*_*hev的帖子

Spark 词法运算顺序

我们都知道,在SQL中,一般来说,我们在编写代码时都有一个定义好的词法操作的顺序:

SELECT ...
FROM ...
JOIN ...
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
Run Code Online (Sandbox Code Playgroud)

Spark 中如何体现这一点?我确实知道这全都与特定对象的属性有关,所以如果我能以不同的方式提出这个问题 - 对于来自 SQL 的人来说,在编写 Spark 应用程序时考虑操作的词汇顺序的有用方法是什么?

为了说明我的困惑。这是我测试中的两段代码,我在其中放置了orderBy两个完全不同的位置(同样来自 SQL 背景),但代码产生了完全相同的结果:

tripDatawithDT \
.filter(tripData["Subscriber Type"] == "Subscriber")\
.orderBy(desc("End Date DT"))\
.groupBy("End Date DT")\
.count()\
.show()


tripDatawithDT \
.filter(tripData["Subscriber Type"] == "Subscriber")\
.groupBy("End Date DT")\
.count()\
.orderBy(desc("End Date DT"))\
.show()
Run Code Online (Sandbox Code Playgroud)

尽管如此,在其他情况下,由于操作的词法顺序错误,我完全搞乱了我的代码。

apache-spark pyspark

4
推荐指数
1
解决办法
1764
查看次数

标签 统计

apache-spark ×1

pyspark ×1