Dela via


Felsöka parquet-formatanslutningen i Azure Data Factory och Azure Synapse

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln innehåller förslag på hur du felsöker vanliga problem med Parquet-formatanslutningen i Azure Data Factory och Azure Synapse.

Felkod: ParquetJavaInvocationException

  • Meddelande: An error occurred when invoking java, message: %javaException;.

  • Orsaker och rekommendationer: Olika orsaker kan leda till det här felet. Kontrollera listan nedan för möjlig orsaksanalys och relaterad rekommendation.

    Orsaksanalys Rekommendation
    När felmeddelandet innehåller strängarna "java.lang.OutOfMemory", "Java heap space" och "doubleCapacity" är det vanligtvis ett problem med minneshantering i en gammal version av Integration Runtime. Om du använder lokalt installerad IR och versionen är tidigare än 3.20.7159.1 rekommenderar vi att du uppgraderar till den senaste versionen.
    När felmeddelandet innehåller strängen "java.lang.OutOfMemory" har integrationskörningen inte tillräckligt med resurser för att bearbeta filerna. Begränsa samtidiga körningar på integrationskörningen. För lokalt installerad IR skalar du upp till en kraftfull dator med minne som är lika med eller större än 8 GB.
    När felmeddelandet innehåller strängen "NullPointerReference" kan det vara ett tillfälligt fel. Försök att utföra åtgärden igen. Kontakta supporten om problemet kvarstår.

Felkod: ParquetInvalidFile

  • Meddelande: File is not a valid Parquet file.

  • Orsak: Det här är ett problem med Parquet-filen.

  • Rekommendation: Kontrollera om indata är en giltig Parquet-fil.

Felkod: ParquetNotSupportedType

Felkod: ParquetMissedDecimalPrecisionScale

  • Meddelande: Decimal Precision or Scale information is not found in schema for column: %column;.

  • Orsak: Talprecisionen och skalan parsades, men ingen sådan information angavs.

  • Rekommendation: Källan returnerar inte rätt precisions- och skalningsinformation. Information finns i problemkolumnen.

Felkod: ParquetInvalidDecimalPrecisionScale

  • Meddelande: Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.

  • Orsak: Schemat är ogiltigt.

  • Rekommendation: Kontrollera problemkolumnen för precision och skalning.

Felkod: ParquetColumnNotFound

  • Meddelande: Column %column; does not exist in Parquet file.

  • Orsak: Källschemat är ett matchningsfel med mottagarschemat.

  • Rekommendation: Kontrollera mappningarna i aktiviteten. Kontrollera att källkolumnen kan mappas till rätt mottagarkolumn.

Felkod: ParquetInvalidDataFormat

  • Meddelande: Incorrect format of %srcValue; for converting to %dstType;.

  • Orsak: Data kan inte konverteras till den typ som anges i mappings.source.

  • Rekommendation: Dubbelkolla källdata eller ange rätt datatyp för den här kolumnen i mappningen av kopieringsaktivitetskolumnen. Mer information finns i Filformat och komprimeringskodc som stöds av kopieringsaktiviteten.

Felkod: ParquetDataCountNotMatchColumnCount

  • Meddelande: The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.

  • Orsak: Ett matchningsfel mellan antalet källkolumner och antalet mottagare.

  • Rekommendation: Dubbelkolla för att säkerställa att antalet källkolumner är samma som antalet mottagare i mappning.

Felkod: ParquetDataTypeNotMatchColumnType

  • Meddelande: The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.

  • Orsak: Data från källan kan inte konverteras till den typ som definieras i mottagaren.

  • Rekommendation: Ange rätt typ i mapping.sink.

Felkod: ParquetBridgeInvalidData

  • Meddelande: %message;

  • Orsak: Datavärdet har överskridit gränsen.

  • Rekommendation: Försök utföra åtgärden igen. Kontakta oss om problemet kvarstår.

Felkod: ParquetUnsupportedInterpretation

  • Meddelande: The given interpretation '%interpretation;' of Parquet format is not supported.

  • Orsak: Det här scenariot stöds inte.

  • Rekommendation: "ParquetInterpretFor" bör inte vara "sparkSql".

Felkod: ParquetUnsupportFileLevelCompressionOption

  • Meddelande: File level compression is not supported for Parquet.

  • Orsak: Det här scenariot stöds inte.

  • Rekommendation: Ta bort "CompressionType" i nyttolasten.

Felkod: UserErrorJniException

  • Meddelande: Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]

  • Orsak: Det går inte att skapa en virtuell Java-dator (JVM) eftersom vissa olagliga (globala) argument har angetts.

  • Rekommendation: Logga in på den dator som är värd för varje nod i din lokala IR. Kontrollera att systemvariabeln är korrekt inställd på följande sätt: _JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G. Starta om alla IR-noder och kör sedan pipelinen igen.

Aritmetiskt spill

  • Symptom: Felmeddelandet uppstod när du kopierade Parquet-filer: Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common

  • Orsak: För närvarande stöds endast decimalen precision <= 38 och längden på heltalsdelen <= 20 när du kopierar filer från Oracle till Parquet.

  • Lösning: Som en lösning kan du konvertera alla kolumner med det här problemet till VARCHAR2.

Ingen uppräkningskonstant

  • Symptom: Felmeddelandet uppstod när du kopierade data till Parquet-format: java.lang.IllegalArgumentException:field ended by &apos;;&apos;, eller: java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test.

  • Orsak:

    Problemet kan orsakas av blanksteg eller specialtecken som inte stöds (till exempel;{}()\n\t=) i kolumnnamnet, eftersom Parquet inte stöder ett sådant format.

    Till exempel parsar ett kolumnnamn som contoso(test) typen inom hakparenteser från koden Tokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");. Felet utlöses eftersom det inte finns någon sådan testtyp.

    Om du vill kontrollera vilka typer som stöds går du till webbplatsen GitHub apache/parquet-mr.

  • Lösning:

    Dubbelkolla för att se om:

    • Det finns blanksteg i mottagarens kolumnnamn.
    • Den första raden med blanksteg används som kolumnnamn.
    • Typen OriginalType stöds. Försök att undvika att använda dessa specialtecken: ,;{}()\n\t=.

Felkod: ParquetDateTimeExceedLimit

  • Meddelande: The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.

  • Orsak: Om datetime-värdet är "0001-01-01 00:00:00" kan det bero på skillnaden mellan juliansk kalender och gregoriansk kalender. Mer information finns i Skillnaden mellan Julian och proleptiska gregorianska kalenderdatum.

  • Lösning: Kontrollera tickvärdet och undvik att använda datetime-värdet "0001-01-01 00:00:00".

Felkod: ParquetInvalidColumnName

  • Meddelande: The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]

  • Orsak: Kolumnnamnet innehåller ogiltiga tecken.

  • Lösning: Lägg till eller ändra kolumnmappningen så att namnet på mottagarkolumnen blir giltigt.

Filen som skapas av kopieringsdataaktiviteten extraherar en tabell som innehåller en kolumn med varbinär (max)

  • Symptom: Parquet-filen som skapats av kopieringsdataaktiviteten extraherar en tabell som innehåller en kolumn med varbinär (max).

  • Orsak: Det här problemet orsakas av biblioteksfelet Parquet-mr för att läsa stora kolumner.

  • Lösning: Försök att generera mindre filer (storlek < 1G) med en begränsning på 1 000 rader per fil.

Om du vill ha mer felsökningshjälp kan du prova dessa resurser: