PySpark Mongodb / java.lang.NoClassDefFoundError: org/apache/spark/sql/DataFrame

PySpark Mongodb / java.lang.NoClassDefFoundError: org/apache/spark/sql/DataFrame

我正在尝试将 pyspark 连接到 MongoDB(Databricks 上的运行):

from pyspark import SparkConf, SparkContext
from pyspark.mllib.recommendation import ALS
from pyspark.sql import SQLContext
df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()

但是我得到这个错误

java.lang.NoClassDefFoundError: org/apache/spark/sql/DataFrame

我正在使用 Spark 2.0 和 Mongo-spark-connector 2.11 并定义了 spark.mongodb.input.uri 和 spark.mongodb.output.uri

您在定义 spark

之前正在使用 spark.read.format

如您在 Spark 2.1.0 documents

中所见

SparkSession 可用于创建 DataFrame、将 DataFrame 注册为表、对表执行 SQL、缓存表和读取 parquet 文件。要创建 SparkSession,请使用以下构建器模式:

spark = SparkSession.builder \
.master("local") \
.appName("Word Count") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()

我设法让它工作,因为我使用的是 mongo-spark-connector_2.10-1.0.0 而不是 mongo-spark-connector_2.10-2.0.0