самый быстрый способ сделать несколько фреймов данных из небольшого набора данных - PullRequest
0 голосов
/ 31 марта 2020

Мне нужно сделать n таблиц из небольшого набора данных (145 тыс. Строк), сделанного из запроса, и способы, которые я пробовал, использовали collect() и cache(), но collect() закончился намного быстрее, чем cache() (5 секунд против 30 секунд ....)

Примеры, которые я использую.
collect ():

df = spark.sql(query).collect()
list_a = [Row(col1=i['col1']) for i in df if i['col2'] == 'test']
list_b = [Row(col1=i['col1']) for i in df if i['col2'] == 'derp']

cache ():

df=spark.sql(query)
df.cache()
list_a = df.filter(df['col2'] == 'test').select('col1').collectAsList()
list_b = df.filter(df['col2'] == 'derp').select('col1').collectAsList()

Есть ли другой способ, который быстрее, чем collect()?
Является ли collect() лучше для небольших наборов данных или ничего не стоит?

...