當從雪花讀取數據是不正確的

數據讀取時雪花是不正確的時區值沒有被正確設置。

寫的DD沙瑪

去年發表在:2022年5月24日

問題

你有一份工作是使用Apache火花從雪花讀表,但Dataframe出現的時間數據是不正確的。

如果你直接運行相同查詢雪花,正確的時間返回數據。

導致

時區值不正確設置的時區值之間的不匹配。磚集群和雪花會導致不正確的時間值,在雪花的解釋使用時間戳和時區文檔。

解決方案

設置時區的磚,不顯式地設置時區的雪花。

選項1:設置時區磚的SQL語句

  1. 打開數據磚工作區。
  2. 選擇集群
  3. 選擇您希望修改集群。
  4. 選擇編輯
  5. 選擇高級選項
  6. 輸入spark.sql.session。時區<時區>火花配置字段。
  7. 選擇確認

選項2:為所有節點設置時區的init腳本

  1. 用以下命令創建init腳本:
    % python dbutils.fs.put(" /磚/腳本/ set_timezone。sh”、“”“# !/bin/bash timedatectl set-timezone美國/ Los_Angeles”“”,真的)
  2. 驗證init腳本的完整路徑。
    % python % fs / set_timezone.sh ls /磚/腳本
  3. 打開數據磚工作區。
  4. 選擇集群
  5. 選擇您希望修改集群。
  6. 選擇編輯
  7. 選擇高級選項
  8. 選擇Init腳本
  9. 進入Init腳本路徑
  10. 選擇添加
  11. 選擇確認