问题
你有一份工作是使用Apache火花从雪花读表,但Dataframe出现的时间数据是不正确的。
如果你直接运行相同查询雪花,正确的时间返回数据。
导致
时区值不正确设置的时区值之间的不匹配。砖集群和雪花会导致不正确的时间值,在雪花的解释使用时间戳和时区文档。
解决方案
设置时区的砖,不显式地设置时区的雪花。
选项1:设置时区砖的SQL语句
- 打开数据砖工作区。
- 选择集群。
- 选择您希望修改集群。
- 选择编辑。
- 选择高级选项。
- 输入spark.sql.session。时区<时区>在火花配置字段。
- 选择确认。
选项2:为所有节点设置时区的init脚本
- 用以下命令创建init脚本:
% python dbutils.fs.put(" /砖/脚本/ set_timezone。sh”、“”“# !/bin/bash timedatectl set-timezone美国/ Los_Angeles”“”,真的)
- 验证init脚本的完整路径。
% python % fs / set_timezone.sh ls /砖/脚本
- 打开数据砖工作区。
- 选择集群。
- 选择您希望修改集群。
- 选择编辑。
- 选择高级选项。
- 选择Init脚本。
- 进入Init脚本路径。
- 选择添加。
- 选择确认。