Эластичное поисковое соединение UDF

#apache-spark #elasticsearch #pyspark

Вопрос:

У меня есть фрейм данных, и я хочу выполнить поиск в индексе elasticsearch, чтобы вернуть значение (идентификатор).

Я хочу выполнить поиск в каждой строке, основываясь на столбце «имя».

Я пытаюсь сделать udf для передачи клиентского объекта в качестве широковещательного, но это не работает. Это проходило как str. Возможно ли какое-то решение? Я использую пакет opensearch.

 def udf_elastic(client, index, ratio):  return udf(lambda l: udf_get_id(client, index)  def get_udf_result(df, client, index_name):   df= df.withColumn('id', udf_elastic(client, index_name)(col("name")))  return df  

udf_get_id-это функция, когда я выполняю эластичный поиск.

 response = client.search(  body=query,  index=index_name )  

И ошибка в том, что:

response = client.search( AttributeError: 'str' object has no attribute 'search'