Как изменить настройку часового пояса с помощью структурированной потоковой передачи Spark?

#apache-spark #pyspark #timezone #spark-structured-streaming

Вопрос:

У меня есть что-то вроде этого. Как изменить часовой пояс в func функции?

 def func(mb_df, batch_num):
# I need to set the timezone here How do I do the equivalent of ...
#   spark.conf.set("spark.sql.session.timeZone", MyTimeZone)?

df.writeStream 
  .format("delta") 
  .foreachBatch(func) 
  .outputMode("update") 
  .option("checkpointLocation", ...) 
  .start()
 

Я пытался mb_df._jdf.sparkSession().conf.set("spark.sql.session.timeZone", MyTimeZone) , но это приводит меня к ошибке AttributeError: 'JavaMember' object has no attribute 'set' .

Комментарии:

1. Я не думаю, что это возможно. Как в Python, так и в JVM (которая в конечном итоге запускает PySpark) часовой пояс выбирается из настроек конфигурации / env при запуске приложения и не может быть динамически изменен внутри функции.