問題
你有一份工作是使用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腳本路徑。
- 選擇添加。
- 選擇確認。