#sql #amazon-web-services #performance #apache-spark #amazon-s3
Вопрос:
Я тестирую различные варианты для нажимных фильтров и операций чтения. Я использую среду ноутбуков AWS EMR и pyspark. Геопространственные данные разделены на разные уровни квадроключей. Я делаю следующие запросы:
df = spark.read.parquet("s3://some_data") df.where("""qk12 like '02313012%'""").count() //1 df.where("""qk8 = '02313012'""").count() //2
Я сделал несколько пробежек в цикле:
- 20 сек 5 сек 4 сек 19 сек 6 сек
- 18 сек 6 сек 5 сек 5 сек 7 сек
Я заметил, что иногда для выполнения запроса требуется ~20 секунд, а иногда ~5 секунд. На данный момент у меня есть 2 вопроса:
- почему иногда это занимает гораздо больше времени, чем другие запуски (без кэширования на моей стороне, если есть какой-либо эффект разогрева на стороне AWS S3?)
- каков наилучший способ измерения производительности запросов spark sql?