java - 使用 Java Spark mongodb 数据

标签 java mongodb apache-spark pyspark

我已在此处跟进文档 Stratio JAVA spark mongdob项目在这里,但我的代码在打印 Check1 后就卡住了。我只是不明白我做错了什么。

<小时/>
    JavaSparkContext sc = new JavaSparkContext("local[*]", "test spark-mongodb java"); 
    SQLContext sqlContext = new SQLContext(sc); 

    Map options = new HashMap(); 
    options.put("host", "host:port"); 
    options.put("database", "database");
    options.put("collection", "collectionName");
    options.put("credentials", "username,database,password");

    System.out.println("Check1");
    DataFrame df =     sqlContext.read().format("com.stratio.datasource.mongodb").options(options).load();

    df.count();
    df.show();

我的pom文件如下:

<小时/>
<dependencies>

    <dependency>
        <groupId>com.stratio.datasource</groupId>
        <artifactId>spark-mongodb_2.11</artifactId>
        <version>0.11.1</version>
        <type>jar</type>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>1.5.2</version>
        <type>jar</type>
    </dependency>
        <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>1.5.2</version>
        <type>jar</type>
    </dependency>

</dependencies>

我已经检查了依赖树,那里一切似乎都很好。

最佳答案

您所报告的是已知错误,已在版本 0.11.2 中解决.

此错误是某些内部 Akka actor 未被终止的原因。 再加上默认的 Akka 设置使 actor 系统成为非守护进程,从而阻止了应用程序关闭。

您有两种选择来解决您的问题:

  • 将您的版本升级到 0.11.2
  • 在项目 resources 文件夹设置下包含一个 application.conf 文件以设置 Actor 系统守护进程。即具有以下内容:

    阿卡{

    守护进程=开启

    }

关于java - 使用 Java Spark mongodb 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37793214/

相关文章:

java - 如果数据存在于其他表中则插入到表中

java - 在 Android 中使用相机捕获图像

arrays - 更新 mongodb 嵌套数组文档中的第 n 个文档

apache-spark - datastax - Spark shell 启动错误

java - 正则表达式在java中查找URL中的编码字符串

java - scala - bash : hw. scala:权限被拒绝

apache-spark - 具有单个源的多个接收器的结构化流

r - sparklyr:创建具有 mutate 功能的新列

MongoDB 仲裁者 AWS EC2

MongoDB 故意仅返回没有匹配 $lookup 结果的用户