Standardization can fail with `Task not serializable` when casting to date is requested
評価
調査の方向性
まず、issue に示されている整数フィールドのメタデータを使い、yyyyMM パターンとタイムゾーンを含めて失敗を再現します。DefaultStandardizationConfig、UDFBuilder、NumericParser が関わるシリアライズ経路を読み、そのうえで、無効な日付入力によって Task not serializable ではなくデータエラーが発生することを確認します。できれば、影響を受ける列または条件も特定します。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
When conversion from an integer to a date in format of yyyyMM (possibly YYYYMM), Standardization had thrown a big error message starting from:
Job aborted. (Job aborted due to stage failure: Task not serializable: = java.io.NotSerializableException: za.co.absa.standardization.config.Default= StandardizationConfig$ Serialization stack: - object not serializable (class: za.co.absa.standardization.config.Defaul= tStandardizationConfig$, value: za.co.absa.standardization.config.DefaultSt= andardizationConfig$@3ba3e058) - element of array (index: 3) - array (class [Ljava.lang.Object;, size 5) - field (class: java.lang.invoke.SerializedLambda, name: capturedArgs, typ= e: class [Ljava.lang.Object;) - object (class java.lang.invoke.SerializedLambda, SerializedLambda[captur= ingClass=3Dclass za.co.absa.standardization.udf.UDFBuilder$, functionalInte= rfaceMethod=3Dscala/Function1.apply:(Ljava/lang/Object;)Ljava/lang/Object;,= implementation=3DinvokeStatic za/co/absa/standardization/udf/UDFBuilder$.$= anonfun$stringUdfViaNumericParser$1:(Lza/co/absa/standardization/types/pars= ers/NumericParser;ZLjava/lang/String;Lza/co/absa/standardization/config/Sta= ndardizationConfig;Lscala/Option;Ljava/lang/String;)Lza/co/absa/standardiza= tion/udf/UDFResult;, instantiatedMethodType=3D(Ljava/lang/String;)Lza/co/ab= sa/standardization/udf/UDFResult;, numCaptured=3D5]) - writeReplace data (class: java.lang.invoke.SerializedLambda) - object (class za.co.absa.standardization.udf.UDFBuilder$$$Lambda$5214/36= 0225670,
To Reproduce
Steps to reproduce the behavior OR commands run:
- Go to '...'
- Use value '...'
- Run using
- See error
Try also to have an integer type with metadata:
{"name": "MY_DATE", "type": "integer", "metadata": {"pattern": "yyyyMM", "timezone": "Africa/Johannesburg"}, "nullable": true}
Expected behavior
- The standardization should have data errors if incorrect date format is passed, not failing the pipeline.
- If the above is not an option, at least, the error message should say which coulmn or condition have caused the error.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: [e.g. iOS]
- Versions of libraries (Spark, Scala, ...)
- Version [e.g. 22]
Additional context
Add any other context about the problem here.
- 主要言語
- Scala
- スター
- 7
- フォーク
- 2
- 平均マージ
- 8日 8時間
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
AbsaOSS/spark-data-standardization のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
AbsaOSS/spark-data-standardization#68 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
AbsaOSS/spark-data-standardization の issue をすべて見る
似ている issue
-
enhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
spotify/scio#6018 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
scylladb/scylla-migrator#417 ·
-
[Docs] Document `spark.databricks.delta.optimize.maxThreads` in Compaction (bin-packing) sectionオープンdelta-docs delta-table-maintenance documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
software-mansion/starknet-jvm#641 ·