Мы используем Spark (2.2.3) внутри Zeppelin с каталогом в памяти для временных просмотров.
Мы страдаем от OOM, потому что пользователи создают множество временных представлений на основе множества файлов, и из-за этого память драйвера Spark раздувается довольно быстро.
Что я пытался сделать, так это отбросить временные представления после X часов его создания и оставить только последние.
Пытался получить время создания из CatalogTable
с помощью следующего кода:
val tid = spark.sessionState.sqlParser.parseTableIdentifier(tableName)
val catalogTable = spark.sessionState.catalog.getTempViewOrPermanentTableMetadata(tid)
print(catalogTable)
Пример вывода:
CatalogTable(
Table: pop_1
Created: Thu May 07 10:05:15 UTC 2020
Last Access: Wed Dec 31 23:59:59 UTC 1969
Type: VIEW
Schema: root
|-- user_id: string (nullable = true)
|-- features: vector (nullable = true)
|-- num_segments: long (nullable = true)
)
Но по какой-то причине createTime
всегда возвращается как сейчас (значение по умолчанию в CatalogTable)
Что я делаю неправильно, и есть ли другой способ получить то, что мне нужно?
Спасибо за помощь!