使用pycharm本地编写python然后远程发送到spark操作mongodb;按照mongodb-spark(https://docs.mongodb.com/spark-connector/master/)教程编写好程序后运行出现报错,主要有两个问题:
1、Error initializing SparkContext,Invalid Spark URL: spark://HeartbeatReceiver@XXXXXX:XXXX
其中XXXX:XXXX指的是远程连接的服务器名称,这个报错是spark2.3的一个bug(参见https://stackoverflow.com/questions/49143271/invalid-spark-url-in-local-spark-session中,Nagireddy Hanisha的回答),解决办法是让SparkSession加上config配置:config("spark.driver.host", "服务器ip地址")注意这个bug如果在服务器直接运行是不会出现的,本人实在本地远程运行程序才会出现这个bug;
2、java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource
在加载的时候没有找到 com.mongodb.spark包,可在SparkSession加上config配置:config('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.11:2.2.3')