es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La clase de usuario ha lanzado una excepción: org.apache.spark.sql.AnalysisException: No se puede inferir el esquema para Parquet. Debe especificarse manualmente.

Estoy implementando un código de Spark Java de la siguiente manera:
Dataset input = spark.read().parquet(configuration.getInputDataLocation());

Sin embargo, el inputDataLocation (una carpeta en un contenedor de Azure Storage Account) puede que no contenga datos y en esos casos se lanzará una excepción:
La clase de usuario lanzó una excepción: org.apache.spark.sql.AnalysisException: No se pudo inferir el esquema para Parquet. Debe especificarse manualmente.

¿Hay alguna manera breve de comprobar si la carpeta de archivos está vacía de antemano y sólo entonces procesar la línea de código de Java Spark escrita anteriormente?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes verificar si la carpeta de archivos está vacía previamente. Puedes usar el método listFiles de la clase File para verificar si la carpeta está vacía. Si la carpeta está vacía, el método listFiles devolverá un arreglo vacío. Puedes usar esto para verificar si la carpeta está vacía antes de procesar el código spark java.

    Ejemplo:

    java
    File folder = new File(configuration.getInputDataLocation());
    if (folder.listFiles().length == 0) {
    // La carpeta está vacía, no procesar el código spark java
    } else {
    Dataset input = spark.read().parquet(configuration.getInputDataLocation());
    // Procesar el código spark java
    }

Comments are closed.