【发布时间】:2018-12-14 01:14:56
【问题描述】:
我正在查看类似于以下内容的书籍示例(几乎相同):
>>> 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()
上面有问题的变体是否是错字或勘误表?如果是错字或勘误表,需要进行哪些调整才能使其正常工作?
谢谢。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql