[Synapse]Copyアクティビティで2200エラーになる場合

Synapseのコピーアクティビティで、シンクにParquetを指定した場合に出るエラーの話。

エラーメッセージはこんな感じ。<列名っぽいもの>はソースデータの列名っぽいものなので、ソースデータにあわせて読み替えてください。

"errorCode": "2200",
"message": "ErrorCode=ParquetJavaInvocationException、'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=An error occurred when invoking java, message: java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.<列名っぽいもの>

原因と解決方法

ソースデータの列名に、Parquetで使えない文字が使われている場合にこのエラーが発生するようです。私の場合はソースデータがSQL Serverで、列名に半角括弧”()”が使われていたのでエラーになっていました。

解決するには列名をコピーアクティビティ内のマップで変更する必要があります。私は半角括弧の列を全角括弧にマッピング定義しました。

補足

たぶんMicrosoft FabricでもAzure Data Factoryでも同じと思われ

コメントを残す