我正在从事一个涉及使用pyspark的项目。但是,在使用某些功能时遇到py4j错误。即:asc
,desc
及其所有变体。要进行复制,请先运行SaprkSession
,然后运行以下命令:
from pyspark import functions as funcs
funcs.asc(funcs.col("foo"))
我收到以下错误:
Py4JError: An error occurred while calling z:org.apache.spark.sql.functions.asc. Trace:
py4j.Py4JException: Method asc([class org.apache.spark.sql.Column]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:339)
at py4j.Gateway.invoke(Gateway.java:276)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.base/java.lang.Thread.run(Thread.java:834)
以下方法工作正常,但是:funcs.col("foo").asc()
。我认为这是一个错误?还是我只是错误地使用了functions
模块?其他功能(sin
,min
,stddev
等)也可以正常工作。排序功能似乎是唯一有问题的功能。
版本信息:
更新:排序功能不适用于数据框的显式列,或者:
import pandas as pd
df = spark.createDataFrame(
pd.DataFrame({
"a": [1, 2, 3],
"b": ["a", "b", "c"]
})
)
funcs.asc(df["a"])
这会导致相同的错误。