Я работаю над проектом, использующим 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
и т. Д.) Работают просто отлично. Функции сортировки кажутся единственными проблемными.
Информация о версии:
- MacOS: 10.13.6
- Python: 3.7.3
- pyspark: 2.4.3
- py4j: 0.10.7
Обновление: функции сортировки также не работают с явными столбцами кадра данных:
import pandas as pd
df = spark.createDataFrame(
pd.DataFrame({
"a": [1, 2, 3],
"b": ["a", "b", "c"]
})
)
funcs.asc(df["a"])
Это вызывает ту же ошибку.