当我试图在Python中使用spark-testing-base时,我需要测试一个在Postgres数据库上编写的函数。在
为此,必须向Spark会话提供连接到Posgtres的驱动程序;为了实现这一点,我首先尝试重写getConf()
method(如注释Override this to specify any custom configuration.
)中所述)。但很明显它不起作用。可能我没有用所需的语法或其他什么来传递值,但是在多次尝试之后,我还是得到了错误java.lang.ClassNotFoundException: org.postgresql.Driver
(通常是驱动程序Jar没有通过conf参数正确下载时)。在
试图getConf
重写:
def getConf(self):
return ("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
def getConf(self):
return {"spark.jars.packages", "org.postgresql:postgresql:42.1.1"}
def getConf(self):
return SparkConf()\
.setMaster("local[*]")\
.setAppName("test")\
.set("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
所以我甚至试图像这样重写the setUp()
方法:
但还是不走运。我做错什么了?我应该如何重写getConf()
方法?在
必须重写setUpClass方法:
这样就可以将外部jar传递给Spark测试库。在
列奥纳多·诺莱托的作品:https://github.com/holdenk/spark-testing-base/issues/281#event-2200108290
不知道如何在python中实现这一点。在scala中,使用sbt,它非常简单。但无论如何,这里找到的
System.setProperty("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
方法:https://github.com/holdenk/spark-testing-base/issues/187对我有用。在所以我想看看如何用python+spark实现这个目标。在
相关问题 更多 >
编程相关推荐