首页 > 解决方案 > 在 spark sql 中广播数据集不起作用

问题描述

我正在使用带有 java api 的 spark sql。我正在尝试广播数据集并使用 boradcasted 数据集。这是导致问题的同一段代码。

Dataset<Rules> rulesDS= loadTrustRulesAsDataset("Rules.csv");
final Broadcast<Dataset<Rules>> broadcastTrustRulesDS = sqlcontext.broadcast(rulesDS);

Dataset<Rules> ds = broadcastTrustRulesDS.getValue();
ds.show();

如评论部分所述,我已更新代码如下

Dataset<Rules> broadcastTrustRulesDS = org.apache.spark.sql.functions.broadcast(rulesDS);

Dataset<Rules> ds = broadcastTrustRulesDS.value();
ds.show();

在 ds.show() 抛出 Nullpointer 异常

这个 ds.show() 没有给出任何结果。

当我在 Eclipse 中运行时,控制台中显示以下消息。

18/05/03 09:51:31 WARN NettyUtil: Found Netty's native epoll transport, but not running on linux-based operating system. Using NIO instead.
18/05/03 09:51:32 INFO Cluster: New Cassandra host localhost/127.0.0.1:9042 added
18/05/03 09:51:32 INFO CassandraConnector: Connected to Cassandra cluster: Test Cluster
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]
[Stage 16:=======================================>                 (7 + 3) / 10]

标签: apache-sparkapache-spark-sql

解决方案


推荐阅读