#apache-spark
#apache-spark
Вопрос:
Spark Dataset.as функция выдает исключение для не найденных столбцов — org.apache.spark.sql.AnalysisException: cannot resolve 'attr_3' given input columns: [attr_1, attr_2];
case class SomeCaseClass(attr_1: String, attr_2: Long, attr_3: String)
spark.read.parquet("some_directory").as[SomeCaseClass]
Есть ли какой-либо способ избежать такого исключения и установить null для несуществующих столбцов?
Комментарии:
1. есть ли у вас
attr_3
доступные в «some_directory»? можете ли вы опубликоватьspark.read.parquet("some_directory").printSchema()
?
Ответ №1:
При чтении укажите, schema
поскольку схема добавляет нулевые значения для несуществующих столбцов, а затем преобразует в DataSet
.
Example:
case class SomeCaseClass(attr_1: String, attr_2: Long, attr_3: String)
val sch=Seq[SomeCaseClass]().toDF.schema
spark.read.schema(SomeCaseClass).parquet("some_directory").as[SomeCaseClass]