У меня проблемы с отладкой, почему простой запрос к внешней таблице hive (с поддержкой DynamodB) занимает 10 минут к северу с помощью spark-submit, а в оболочке куста это занимает всего 4 секунды.
Внешняя таблица Hive это относится к таблице Dynamodb, скажем Employee [id, name, ssn, dept]. id - это ключ раздела, а ssn - ключ диапазона.
Использование aws emr 5.29, spark, hive, tez, has oop. 1 мастер, 4 ядра, m5.l
в оболочке улья: select name, dept, ssn from employee here id='123/ABC/X12I'
возвращает результаты через 4 секунды.
Теперь, допустим, у меня есть следующий код в code.py (игнорируя import)
spark = SparkSession.builder.appName("test").enableHiveSupport().getOrCreate()
data=spark.sql("select name, dept, ssn from employee here id='123/ABC/X12I'")
# print data or get length
Я отправляю вышеупомянутое на главном узле как:
spark-submit --jars /pathto/emr-ddb-hive.jar, /pathto/emr-ddb-hadoop.jar code.py
Вышеуказанная отправка искры занимает длительное время 14+ минут. Я не уверен, какой параметр нужно настроить или установить, чтобы получить лучшее время отклика.
В оболочке улья я сделал SET
; чтобы посмотреть параметры, которые использует оболочка куста и есть gazillion.
Я также попробовал способ поиска boto3 DynamodB, и это намного быстрее, чем мой простой py sql, чтобы инициировать отправку.
Мне не хватает основ ... Любая идея или направление оценили.