Praca z ramkami danych Spark zaimportowana z Hive, czasami kończę na kilku kolumnach, których nie potrzebuję. Przypuśćmy, że nie chcę, aby filtrować jeWybierz konkretne kolumny w ramce danych PySpark, aby poprawić wydajność.
df = SqlContext.sql('select cols from mytable')
a ja importowania całą tabelę z
df = SqlContext.table(mytable)
robi select
i późniejsze cache
poprawia wykorzystanie pamięci wydajność/spadek, jak
df = df.select('col_1', 'col_2', 'col_3')
df.cache()
df.count()
czy to strata czasu? Zrobię wiele operacji i manipulacji danymi na df
, jak avg
, withColumn
itp
Pamięć podręczna bardzo pomaga, więc poprawi wydajność. –
Ale czy warto wcześniej dokonać selekcji? – Ivan
Tak, jeśli nie potrzebujesz innych kolumn w poniższych krokach - będziesz potrzebować tylko kolumn w pamięci podręcznej – MaxU