Pyspark数据帧存储到MongoDB错误

时间:2017-09-29 00:34:38

标签: python mongodb csv apache-spark pyspark

代码适用于pyspark shell,但是当我尝试用Java或Scala编写程序时,我会遇到异常。

使用python将spark数据帧存储到MongoDB的最佳方法是什么?

  • pyspark version- 2.2.0
  • MongoDB version-3.4
  • Python 2.7
  • Java - jdk-9

这是我的代码:

from pyspark import SparkContext
from pyspark.sql import SparkSession

my_spark = SparkSession \
    .builder \
    .appName("myApp") \
    .config("spark.mongodb.input.uri", "mongodb://127.0.0.1/test.coll") \
    .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/test.coll") \
    .getOrCreate()

dataframe = my_spark.read.csv('auto-data.csv', header=True)
dataframe.write.format("com.mongodb.spark.sql.DefaultSource") \
    .mode("append").option("database", "auto").option("collection", "autod").save()

snapshot of my csv data

errors

我在从github安装mongo-spark库之后尝试过,但得到了相同的结果。

1 个答案:

答案 0 :(得分:0)

在以下示例中,您需要下载所有依赖项并存储在位置“ / opt / jars”中 需要的罐子 1. mongo-spark-connector_2.12-2.4.0.jar 2. mongodb-driver-3.10.1.jar 3. mongo-hadoop-core-1.3.0.jar(以防纱线上生火花)

sudo wget https://repo1.maven.org/maven2/org/mongodb/spark/mongo-spark-connector_2.12/2.4.0/mongo-spark-connector_2.12-2.4.0.jar
sudo wget https://repo1.maven.org/maven2/org/mongodb/mongodb-driver/3.10.1/mongodb-driver-3.10.1.jar
sudo wget https://repo1.maven.org/maven2/org/mongodb/mongo-hadoop-core/1.3.0/mongo-hadoop-core-1.3.0.jar

然后使用以下命令执行

spark-submit --jars "/opt/jar/*.jar" --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0 <your file>.py arg1 arg2