pyspark 将数据块中的默认时区设置为ESTA

798qvoo8  于 2023-10-15  发布在  Spark
关注(0)|答案(2)|浏览(123)

我在数据库中运行代码,但不知何故unixtimestamp值并没有不同。在调试时,我开始了解,因为数据块配置了UTC时区。请告诉我如何在Databricks中将默认时区更改为EST。

axzmvihb

axzmvihb1#

可以在cluster -> configuration -> Advanced Option -> spark中设置,设置spark参数:

spark.sql.session.timeZone Asia/Hongkong

它将影响任何SQL语句时区。
如果要为所有数据节点设置时区,则需要添加初始脚本并设置unix时区。所以像python datetime.dateime.now()这样的东西,将是设置的时区。

7hiiyaii

7hiiyaii2#

你也可以在定义spark session时设置时区:

from pyspark.sql import SparkSession as PySparkSession
from pyspark import SparkConf

TIMEZONE = 'AFRICA/CAT'

class SparkSession:

    def __init__(self, config=[]):
        config.append(tuple(('spark.sql.session.timeZone',TIMEZONE)))
        self.conf = SparkConf().setAll(config)
        self.spark = (PySparkSession.builder
                      .config(conf=self.conf)
                      .enableHiveSupport()
                      .getOrCreate())

相关问题