Uživatelská třída hodil výjimkou: org.apache.jiskra.sql.AnalysisException: Nelze odvodit schéma pro Parkety. Musí být zadán ručně

0

Otázka

Jsem prováděcích jiskra kód v jazyce java, jako, Dataset input = jiskra.read().parkety(konfigurace.getInputDataLocation());

Ale inputDataLocation(složky v Azure Storage Účtu, kontejneru) nemusí mít žádná data a v takových případech použití výjimkou je vyvolána, Uživatelská třída hodil výjimkou: org.apache.jiskra.sql.AnalysisException: Nelze odvodit schéma pro Parkety. Musí být zadán ručně.

Je tam stručný způsob, jak zkontrolovat, zda soubor, složka je prázdná předem a pak jsem jen proces spark java kód řádku napsáno výše.

apache-spark bigdata java parquet
2021-11-18 10:56:08
1

Nejlepší odpověď

0

Proč nezkusíš čtení vstupního dir zkontrolovat, jestli to existuje?

       final boolean exists;
            try {
                exists = file.getFileSystem(spark.sparkContext().hadoopConfiguration()).getFileStatus(file).isFile();

//exists = dir.getFileSystem(spark.sparkContext().hadoopConfiguration()).listStatus(dir).length // (0 length is an empty dir)
            } catch (IOException e) {
                throw new UncheckedIOException(e);
            }
    
            if (exists) {
                return spark.read().parquet(configuration.getInputDataLocation());
            } else {
                LOG.warn("File directory '{}' does not exist", file);
                return spark.emptyDataset(SOME_ENCODER);
            }
        }
2021-11-18 19:06:03

Je instance souboru s odkazem na java.io.Souboru? protože to potřebuje jako parametr prošel dovnitř a výše, že to nemá žádné funkce s názvem getFileSystem();
HARDIK SINGH NEGI

soubor je instance Path z org.apache.hadoop.fs.Cesta;
Neethu Lalitha

ahoj, zkoušel jsem ti řešení a funguje to v pohodě, když přesnou cestu k souboru je k dispozici, ale zde jsem chtěl zjistit, jestli tam jsou soubory v zadané složce nebo ne, a jak to děláme.
HARDIK SINGH NEGI

Přidal komentář v kódu číst dir
Neethu Lalitha

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................