Удалить строки из фрейма данных на основе условия в pyspark - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть один фрейм данных с двумя столбцами:

+--------+-----+
|    col1| col2|
+--------+-----+
|22      | 12.2|
|1       |  2.1|
|5       | 52.1|
|2       | 62.9|
|77      | 33.3|

Я хотел бы создать новый фрейм данных, который будет принимать только те строки, где

"значение столбца"> "значение col2 "

Так же, как примечание, col1 имеет длинный тип, а col2 имеет двойной тип

результат должен быть похож наэто:

+--------+----+
|    col1|col2|
+--------+----+
|22      |12.2|
|77      |33.3|

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Другим возможным способом может быть использование функции where DF.

Например, это:

val output = df.where("col1>col2")

даст ожидаемый результат:

+----+----+
|col1|col2|
+----+----+
|  22|12.2|
|  77|33.3|
+----+----+
0 голосов
/ 19 сентября 2018

Я думаю, что лучшим способом было бы просто использовать «фильтр».

df_filtered=df.filter(df.col1>df.col2)
df_filtered.show()

+--------+----+
|    col1|col2|
+--------+----+
|22      |12.2|
|77      |33.3|
0 голосов
/ 19 сентября 2018

вы можете использовать sqlContext, чтобы упростить задачу.

сначала зарегистрируйтесь как временная таблица, как пример: df.createOrReplaceTempView("tbl1"), затем запустите sql как sqlContext.sql("select * from tbl1 where col1 > col2")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...