Разница в производительности PySpark при фильтрации с использованием разных методов - PullRequest
0 голосов
/ 24 апреля 2020

Я понимаю, что мы можем фильтровать фреймы данных PySpark, используя несколько различных методов. Скажем, если у нас есть фрейм данных, как показано ниже:

>>> import pyspark.sql.functions as F
>>> from pyspark.sql.types import *

>>> schema = StructType([StructField('A', StringType(), True)])
>>> df = spark.createDataFrame([("a",), ("b",), ("c",)], schema)
>>> df.show()
+---+
|  A|
+---+
|  a|
|  b|
|  c|
+---+

Мы можем отфильтровать столбец 'A' ​​для определенного значения в 3 по-разному

df.filter(F.col('A')=='a') # using F.col()
df.filter(df['A']=='a') # using df['col_name']=='value'
df.where(F.col('A')=='a') #using .where

Все три дают одинаковые результаты, но в случае больших наборов данных с миллионами строк, какой из них лучше всего использовать с точки зрения производительности?

Когда Я рассчитал их в камере ноутбука Jupyter, я не смог получить каких-либо убедительных результатов. Любая помощь приветствуется.

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