Я пытаюсь создать API для регистрации данных в Azure Cosmos DB из Azure Databricks.Иногда это работает идеально.Но иногда он останавливается и выдает мне следующую ошибку:
"org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 13.0 failed 4 times, most recent failure: Lost task 0.3 in stage 13.0 (TID 182, 10.139.64.6, executor 0): java.io.InvalidClassException: com.microsoft.azure.cosmosdb.spark.partitioner.CosmosDBPartitioner; local class incompatible: stream classdesc serialVersionUID = 8353915059903012358, local class serialVersionUID = 8931626920614698600"
Я создал базу данных в CosmosDB с именем: "CosmoDB" , которая содержит контейнер: "containsLog ".
В блоках данных есть API с именем" Cosmos_Log_API ", который состоит из класса" Cosmos_conn () ".Он содержит два метода: "read_logs ()" и "write_logs (log_text)"
Когда я вызываю эти два метода как: Cosmos_conn (). Read_logs () Cosmos_conn (). Write_logs ("test"),
Данные из БД Космос считываются и записываются.Но не регулярно.
Иногда я получаю сообщение об ошибке: "org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 0 на этапе 13.0 не выполнено 4 раза, последний сбой: потерянное задание0,3 на этапе 13.0 (TID 182, 10.139.64.6, исполнитель 0): java.io.InvalidClassException: com.microsoft.azure.cosmosdb.spark.partitioner.CosmosDBPartitioner; несовместимый локальный класс: класс потока streamdesc serialVersionUID = 835391505990 ID0 serialID localSource = local_SID = local_SerialServer = 08931626920614698600 "
def read_logs(self):
readConfig = {
"Endpoint" : "x",
"Masterkey" : "x",
"Database" : "x",
"Collection" : "x"
}
df = spark.read.format("com.microsoft.azure.cosmosdb.spark").options(**readConfig).load()
display(df[['logs','id']])