from pyspark.sql import functions as sFn
# Note: I import Spark functions this way to avoid name collisions w/ Python.
# Usage below: sFn.expr(), sFn.col(), etc.col0 = [0, 1, 2, 3]
col1 = [4, 5, 6, 7]myDF = spark.createDataFrame(zip(col0, col1),
schema=['col0', 'col1'])
print(myDF)
myDF.show()
myDF.orderBy(sFn.expr('col0 desc')).show() # <--- Problem line. Doesn't descend.
现在这本书的例子声称最后一个语句会以col0递减的方式排序,但它没有:
DataFrame[col0: bigint, col1: bigint]
col0 | col1 |
---|---|
0 | 4 |
1 | 5 |
2 | 6 |
3 | 7 |
col0 | col1 |
---|---|
0 | 4 |
1 | 5 |
2 | 6 |
3 | 7 |
但是,这种语法变体一直对我有用:
myDF.orderBy(sFn.col("col0").desc()).show()
问题变异是否超过拼写错误或勘误表?如果它是拼写错误或勘误表,那么需要进行哪些调整才能使其正常工作?
In sFn.expr('col0 desc'),desc被翻译为别名而不是a order by modifier,正如您在控制台中输入的那样:
sFn.expr('col0 desc')
以下是您可以根据需要选择的其他几个选项:
myDF.orderBy('col0', ascending=0).show() | |
---|---|
col0 | col1 |
3 | 7 |
2 | 6 |
1 | 5 |
0 | 4 |
myDF.orderBy(sFn.desc('col0')).show() | |
---|---|
col0 | col1 |
3 | 7 |
2 | 6 |
1 | 5 |
0 | 4 |
myDF.orderBy(myDF.col0.desc()).show() | |
---|---|
col0 | col1 |
3 | 7 |
2 | 6 |
1 | 5 |
0 | 4 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。