Искровой фильтр не работает должным образом. Объект «Столбец» не вызывается - PullRequest
0 голосов
/ 23 апреля 2019

При использовании предложения "and" в фильтре в Spark Dataframe возвращается Spark.SQL.Column вместо Spark Dataframe.Но для одного условия это работает нормально.

Как show() или перебрать объект Spark Sql Column?При попытке show() функция выдает ошибку - 'Column' object not callable.

Или как преобразовать Spark.SQL.Column в Spark Dataframe?Или как пройти несколько условий в предложении фильтра?

df2 = df.filter((df.dropoff_longitude >= -65.09)&(df.dropoff_longitude <= -63.000))

1 Ответ

0 голосов
/ 23 апреля 2019

По данным pyspark Официальный документ

вы можете использовать df.filter или df.where для прохождения условия фильтрации для вашего примера пройти несколько условий

df.filter("dropoff_longitude >= -65.09 and df.dropoff_longitude <= -63.000")
df.where("dropoff_longitude >= -65.09 and df.dropoff_longitude <= -63.000")  # SQL String

или

from pyspark.sql.functions import col
df.filter(col("dropoff_longitude) >= -65.09) & (col(dropoff_longitude) <= -63.000))

выступая на шоу.

df.dropoff_longitude.show()  # this reports an error
df.select("dropoff_longitude").show()  # this line works

as .show является свойством / функцией spark.sql.dataframe вместо spark.sql.columns

так что если ваше преобразование возвращает столбец искры, то .show не будет работать
но если ваше преобразование возвращается к другому фрейму данных, тогда .show должно работать

...