#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 при запуске приложения и не может быть динамически изменен внутри функции.