Получение следующей ошибки при создании дельта-таблицы с помощью scalaspark. _delta_log создается на складе, но после создания _delta_log возникает эта ошибка.
Исключение в потоке "main" java.lang.ClassCastException: class org.apache.hadoop.fs.RawLocalFileSystem$ DeprecatedRawLocalFileStatus нельзя привести к классу org.apache.spark.sql.execution.datasources.FileStatusWithMetadata (org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus и org.apache.spark.sql.execution.datasources.FileStatusWithMetadata находятся в безымянном модуле загрузчик 'приложение')
build.sbt
Код: Выделить всё
//Using JDK 20
import sbt.project
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "2.12.4"
lazy val root = (project in file("."))
.settings(
name := "scala-spark-app2",
idePackagePrefix := Some("com.scalaspark.app2"),
)
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.5.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.5.0"
libraryDependencies += "io.delta" %% "delta-core" % "2.4.0"
Код: Выделить всё
package com.scalaspark.app2
import org.apache.spark.sql.{Row, SparkSession}
object Main {
def main(args: Array[String]): Unit = {
val warehouseDir = "/Users/usr1/app2/scala-spark-app2/data_files/"
val spark = SparkSession.builder()
.appName("DeltaTableDetails")
.config("spark.master", "local")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.config("spark.sql.warehouse.dir", warehouseDir)
.getOrCreate()
var query = "CREATE TABLE IF NOT EXISTS T1 (id bigint, data string) USING delta LOCATION '/Users/usr1/scala-spark-app2/data_files/T1'"
spark.sql(query)
query = "INSERT INTO T1 VALUES(10,'VAL1')"
spark.sql(query)
}
}
Источник: https://stackoverflow.com/questions/781 ... cant-be-ca