我一直在尝试用spark会话配置geospark,以便在pyspark上使用spatial应用程序。我跟随这个链接并尝试运行下面提到的代码。
try:
import pyspark
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession, SQLContext
except ImportError as e:
raise ImportError('PySpark is not Configured')
print(f"PySpark Version : {pyspark.__version__}")
# Creating a Spark-Context
sc = SparkContext.getOrCreate(SparkConf().setMaster('local[*]').set("spark.ui.port", "4050"))
# Spark Builder
spark = SparkSession.builder.appName('GeoSparkDemo').config('spark.executor.memory', '5GB')\
.getOrCreate()
from geospark.register import upload_jars
from geospark.register import GeoSparkRegistrator
upload_jars()
GeoSparkRegistrator.registerAll(spark)
当我运行这个文件,它给我下面的错误。
回溯(最后一次调用):文件“c:\sourav\spark\code\geospark\u demo.py”,第29行,在geosparkregistrator.registerall(spark)文件“c:\users\user3.conda\envs\python37\lib\site packages\geospark\register\geo\u registator.py”,第26行,在registeral cls.register(spark)文件“c:\users\user3.conda\envs\python37\lib\site packages\geospark\register\geo\u registator.py”的第31行,register return spark.\u jvm.geosparksqllregistator.registeral(spark.\u jsparksession)typeerror:'javapackage'对象不可调用
我试图在spark jars文件夹中手动添加以下jar文件
•geospark-1.3.1.jar•geospark-sql\u 2.1-1.3.1.jar•geo\u wrapper.jar
现在前面的错误消失了&新的异常正在抛出,如下所示:
回溯(最后一次调用):文件“c:\sourav\spark\code\geospark\u demo.py”,第29行,在geosparkregistrator.registerall(spark)文件“c:\users\user3.conda\envs\python37\lib\site packages\geospark\register\geo\u registator.py”,第26行,在registeral cls.register(spark)文件“c:\users\user3.conda\envs\python37\lib\site packages\geospark\register\geo\u registator.py”的第31行,在register return spark.\u jvm.geosparksqllregisteral(.\u jsparksession)中
文件“c:\users\user3.conda\envs\python37\lib\site packages\py4j\java\u gateway.py”,第1257行,在call answer,self.gateway\u client,self.target\u id,self.name)文件“c:\sourav\spark\spark-2.4.7-bin-hadoop2.7\python\pyspark\sql\utils.py”,第63行,在deco return f(*a,**kw)文件“c:\users\user3.conda\envs\python37\lib\site packages\py4j\protocol.py”,第328行,格式为get\u return\u value(target\u id,“.”,name),value)py4j.protocol.py4jjavaerror:调用z:org.datasyslab.geosparksql.utils.geosparksqlregisteral时出错:java.lang.nosuchmethoderror:org.apache.spark.sql.catalyst.analysis.simplefunctionregistry.registerfunction(ljava/lang/string;lscala/function1;)v位于org.datasyslab.geosparksql.udf.udfregistrator$$anonfun$registerall$1.apply(udfregistrator.scala:29)位于org.datasyslab.geosparksql.udf.udfregistrator$$anonfun$registerall$1.apply(udfregistrator.scala:29)在scalaxx.collection.immutable.list.foreach(list.scala:392)在org.datasyslab.geosparksql.udf.udfregistrator$.registerall(udfregistrator.xx)xscala:29)位于org.datasyslab.geosparksql.utils.geosparksqlregistator$.registerall(geosparksqlregistator.scala:34)网址:org.datasyslab.geosparksql.utils.geosparksqlregistator.registerall(geosparksqlregistator.scalaxx)sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(未知源)在sun.reflect.delegatingmethodaccessorimpl.invoke(未知源)在java.lang.reflect.method.invoke(未知源)在py4j.reflection.methodinvoker.invoke(methodinvoker.java:244)在py4j.reflection.reflectionengine.invoke(reflectionengine.x)xxjava:357)在py4j.gateway.invoke(gateway.java:282)在py4j.commands.abstractcommand.invokemethod(abstractcommand.java:132)在py4j.commands.callcommand.execute(callcommand.java:79)在py4j.gatewayconnection.run(gatewayconnection.java:238)在java.lang.thread.run(未知源)
我发现这个链接也有类似的问题,我甚至尝试用下面的代码在spark配置文件中添加jar,但似乎没有任何效果。
spark.driver.extraClassPath C:\sourav\spark\geosparkjar/*
我正在使用geospark 1.3.1、java 8、python 3.7、apache park 2.4.7,我的java\u home、spark\u home设置正确,我运行的是windows10。
如何修复此问题以继续?如有任何帮助/建议,我们将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!