При попытке прочитать шейп-файл ESRI с помощью приведенного ниже кода я в итоге получаю следующую ошибку:
Исключение в потоке "main" java.lang.IllegalAccessError: попытался получить доступ к методу com.google.common.base.Stopwatch. () V из класса org.apache.hadoop.mapreduce.lib.input.FileInputFormat
Код:
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
import org.datasyslab.geospark.formatMapper.shapefileParser.ShapefileReader
import org.locationtech.jts.geom.{Coordinate, GeometryFactory, Point}
object GetRandomData {
def main(sysArgs: Array[String]) {
@transient val spark: SparkSession = {
SparkSession
.builder()
.config("spark.ui.enabled", "false")
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.config("spark.kryoserializer.buffer.mb", "24")
.appName("GetRandomData")
.master("local[*]")
.getOrCreate()
}
val sc = spark.sparkContext
sc.setLogLevel("ERROR")
System.setProperty("geospark.global.charset", "utf8")
val shapefileInputLocation = "~/Downloads/shapefile_folder/shapefile.shp"
val spatialRDD = ShapefileReader.readToGeometryRDD(sc, shapefileInputLocation)
}
}