詳細モードのマッピングのトラブルシューティング
- AvroファイルまたはParquetファイルのDateおよびInt96データ型を読み書きするように設定されたマッピングが失敗する
- AvroファイルまたはParquetファイルとの間で読み書きするように設定されたマッピングは、次の場合に失敗します。
- - データがDateデータ型で、日付が1582-10-15より前の場合。
- - データがInt96データ型で、タイムスタンプが1900-01-01T00:00:00Zより前の場合。
この問題を解決するには、マッピングタスクまたはSecure Agentのカスタムプロパティファイルで、次のSparkセッションプロパティを指定します。
- - spark.sql.legacy.timeParserPolicy=LEGACY
- - spark.sql.parquet.int96RebaseModeInWrite=LEGACY
- - spark.sql.parquet.datetimeRebaseModeInWrite=LEGACY
- - spark.sql.parquet.int96RebaseModeInRead=LEGACY
- - spark.sql.parquet.datetimeRebaseModeInRead=LEGACY
- - spark.sql.avro.datetimeRebaseModeInWrite=LEGACY
- - spark.sql.avro.datetimeRebaseModeInRead=LEGACY
- ParquetまたはAvroファイル形式の日付およびタイムスタンプデータ型フィールドのタイムゾーンは、デフォルトではSecure Agentホストマシンのタイムゾーンになります。
- マッピングを実行して、ParquetまたはAvroファイル形式の日付およびタイムスタンプデータ型のフィールドに対して読み取りまたは書き込みを行う場合、タイムゾーンはデフォルトでSecure Agentホストマシンのタイムゾーンになります。
- 日付およびタイムスタンプをUTCタイムゾーンに変更するには、このSecure Agentを使用する組織内のすべてのタスクに対して、Secure AgentディレクトリでSparkプロパティをグローバルに設定するか、特定のタスクに対して、タスクのプロパティからSparkセッションプロパティを設定します。
- プロパティをグローバルに設定するには、次のタスクを実行します。
- 1次のプロパティを<Secure Agentインストールディレクトリ>/apps/At_Scale_Server/41.0.2.1/spark/custom.propertiesディレクトリに追加します。
- ▪ infacco.job.spark.driver.extraJavaOptions=-Duser.timezone=UTC
- ▪ infacco.job.spark.executor.extraJavaOptions=-Duser.timezone=UTC
- 2Secure Agentを再起動します。
- 特定のタスクのプロパティを設定するには、タスクプロパティのSparkセッションプロパティに移動し、次の手順を実行します。
- - セッションプロパティ名としてspark.driver.extraJavaOptionsを選択し、値を-Duser.timezone=UTCに設定します。
- - spark.executor.extraJavaOptionsを選択して、値を-Duser.timezone=UTCに設定します。