Я понимаю, что мы можем фильтровать фреймы данных 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, я не смог получить каких-либо убедительных результатов. Любая помощь приветствуется.