Size: a a a

2021 February 11

G

Gev in Moscow Spark
Это ж 3.0.1. У меня пока 2.4.5
источник

NN

No Name in Moscow Spark
Gev
Да уже. Блин. А чем тогда проверить DF
Ну проверяй тогда наличие хотя бы одной строки, без конверта в rdd
источник

G

Gev in Moscow Spark
.limit(1).collect().isEmpty ?
источник

GP

Grigory Pomadchin in Moscow Spark
Gev
Это ж 3.0.1. У меня пока 2.4.5
@since 2.4.0
источник

NN

No Name in Moscow Spark
No Name
Ну проверяй тогда наличие хотя бы одной строки, без конверта в rdd
А в 2.4 нет у датасетов разве isEmpty?
источник

GP

Grigory Pomadchin in Moscow Spark
Gev
.limit(1).collect().isEmpty ?
тогда уж take(1)
источник

GP

Grigory Pomadchin in Moscow Spark
если ты глянешь в реализацию isEmpty RDD она самым оптимальным способам реализована
источник

GP

Grigory Pomadchin in Moscow Spark
вопрос только датасетовый быстрее будет или нет
источник

GP

Grigory Pomadchin in Moscow Spark
мне кажется нет
источник

GP

Grigory Pomadchin in Moscow Spark
у тебя в любом случае проверка ветвится - или нет партиций или в первой партиции нет элементов
источник

NN

No Name in Moscow Spark
Grigory Pomadchin
мне кажется нет
Читал ругательные комментарии насчёт него на стековерфлоу)
источник

GP

Grigory Pomadchin in Moscow Spark
No Name
Читал ругательные комментарии насчёт него на стековерфлоу)
не читал)
источник

GP

Grigory Pomadchin in Moscow Spark
ну наверняка одинаково работают
источник

GP

Grigory Pomadchin in Moscow Spark
а ну смотри
источник

GP

Grigory Pomadchin in Moscow Spark
def isEmpty: Boolean = withAction("isEmpty", limit(1).groupBy().count().queryExecution) { plan =>
   plan.executeCollect().head.getLong(0) == 0
 }
источник

GP

Grigory Pomadchin in Moscow Spark
источник

GP

Grigory Pomadchin in Moscow Spark
@3.0.1

def isEmpty: Boolean = withAction("isEmpty", select().queryExecution) { plan =>
   plan.executeTake(1).isEmpty
 }
источник

GP

Grigory Pomadchin in Moscow Spark
ну короче быстрее не сделаете
источник

АА

Артем Анистратов... in Moscow Spark
Если у тебя есть статически возрастающий не наловый id, то взять можно взять максимальный-минимальный. Но вот с точки зоения производительности хз, нужно сначала отсортировать набор данных🤔
источник

АА

Артем Анистратов... in Moscow Spark
Andrey Smirnov
С countApprox как то все не понятно, если поискать по чату, то должно найтись обсуждение его работы (точнее не работы).
Не просто не очевидно, а очень заметно замедлит.  По крайней мере так говорит карау.

+ сам проверял если ты неявно преобразуешь df к rdd во время фильтрации:
Df.filter( col(x) == 2) - здесь работает все как dataframe
Df.filter(_ ==2 ) - неявно преобразование к rdd

Производительность падает примерно в 2-3 раза в зависимости от консистентности данных
источник