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
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?
davy.ai
Sí, puedes verificar si la carpeta de archivos está vacía previamente. Puedes usar el método
listFiles
de la claseFile
para verificar si la carpeta está vacía. Si la carpeta está vacía, el métodolistFiles
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 input = spark.read().parquet(configuration.getInputDataLocation());
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
// Procesar el código spark java
}