IllegalAccessException .. не может получить доступ к члену класса с модификаторами "protected"
Это мой скала код. Я пытаюсь внедрить файл Geotiff в HDFS с помощью библиотеки Geotrellis.
package RasterDataIngest.RasterDataIngestIntoHadoop
import geotrellis.spark._
import geotrellis.spark.ingest._
import geotrellis.spark.io.hadoop._
import geotrellis.spark.io.index._
import geotrellis.spark.tiling._
import geotrellis.spark.utils.SparkUtils
import geotrellis.vector._
import org.apache.hadoop.fs.Path
import org.apache.spark._
import com.quantifind.sumac.ArgMain
import com.quantifind.sumac.validation.Required
class HadoopIngestArgs extends IngestArgs {
@Required var catalog: String = _
def catalogPath = new Path(catalog)
}
object HadoopIngest extends ArgMain[HadoopIngestArgs] with Logging {
def main(args: HadoopIngestArgs): Unit = {
System.setProperty("com.sun.media.jai.disableMediaLib", "true")
implicit val sparkContext = SparkUtils.createSparkContext("Ingest")
val conf = sparkContext.hadoopConfiguration
conf.set("io.map.index.interval", "1")
val catalog = HadoopRasterCatalog(args.catalogPath)
val source = sparkContext.hadoopGeoTiffRDD(args.inPath)
val layoutScheme = ZoomedLayoutScheme()
Ingest[ProjectedExtent, SpatialKey](source, args.destCrs, layoutScheme, args.pyramid){ (rdd, level) =>
catalog
.writer[SpatialKey](RowMajorKeyIndexMethod, args.clobber)
.write(LayerId(args.layerName, level.zoom), rdd)
}
}
}
Когда я запускаю этот код, я получаю следующую ошибку. Пожалуйста, помогите мне решить эту ошибку.
java.lang.IllegalAccessException: Class org.osgeo.proj4j.Registry can not access a member of class org.osgeo.proj4j.proj.Projection with modifiers "protected"
1 ответ
Я считаю, что проблема связана с плохим кешем sbt или несоответствием версии Java. Попробуйте последнюю стабильную версию GeoTrellis: 0.10.3 (Scala 2.10/2.11, Java 8, Spark 1.6.x). Если вы планируете использовать GeoTrellis со Spark 2, взгляните на снимок GeoTrellis (версия 1.0.0 будет поддерживать Spark 2+, Java 8 и Scala 2.11).