Я использую метод try and catch для перехвата исключения при чтении файла в Dataframe, используя приведенный ниже код
import scala.io.StdIn
import scala.util.{Try, Success, Failure}
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
val filename = "s3a://bucketname/moving/file.csv"
def CustomSchemaDataFrame(fileName: String):Try[DataFrame] = {
try {
val df_custom_schema = spark.read.format("csv").option("header", "true").load(filename)
Success(df_custom_schema)
} catch {
case unknown: Exception => {
println(s"Unknown exception: $unknown")
Failure(unknown)
}
}
}
CustomSchemaDataFrame(filename) match {
case Success(df_custom_schema) => {
println("File Read Successfully")
df_custom_schema.printSchema()
df_custom_schema.show(true)
}
case Failure(ex) => {
println("error code", ex)
}
}
то, что я хотел бы выполнить дальше, - это экспортировать df_custom_schema вне побочного соответствия, чтобы выполнить операцию боковое совпадение l oop.
что-то вроде этого ниже
CustomSchemaDataFrame(filename) match {
case Success(df_custom_schema) => {
println("File Read Successfully")
df_custom_schema.printSchema()
df_custom_schema.show(true)
val custom_schema = df_custom_schema
}
case Failure(ex) => {
println("error code", ex)
}
}
custom_schema.printSchema()
, когда я использую выше custom_schema.printSchema () внутри соответствует его работе нормально, но когда я пытаюсь получить к нему доступ вне его ошибки бросания. Есть ли способ получить доступ к значениям вне регистра совпадения. так как я хочу выполнить несколько других операций с этим фреймом данных.
касается махи