我正在尝试将来自mongodb-hadoop连接器的数据映射到spark应用程序中。我之前没有其他错误所以我假设与mongodb的连接成功。我使用以下代码进行映射:
<%= f.fields_for :detallepromo do |builder| %>
<% if builder.Monto == nil %>
<div class="well center-block">
<div class="form-group">
<h3 class="col-md-5">Promocion Base:</h3>
</div>
<div class="form-group">
<%= builder.label :Monto,"Monto:", class: "control-label col-md-2" %>
<div class="col-md-3">
<%= builder.text_field :Monto, class: "form-control mensaje_fechafinal" %>
</div>
<% end %>
<% end >
代码失败了:
JavaRDD<AppLog> logs = documents.map(
new Function<Tuple2<Object, BSONObject>, AppLog>() {
public AppLog call(final Tuple2<Object, BSONObject> tuple) {
AppLog log = new AppLog();
BSONObject header =
(BSONObject) tuple._2().get("headers");
log.setTarget((String) header.get("target"));
log.setAction((String) header.get("action"));
return log;
}
}
);
答案 0 :(得分:1)
在mapper类中使用的变量之一具有null值。
什么可以为空?
tuple
参数headers
个对象
我们没有您的测试数据,您必须自己检查什么可以为null。这不是Spark的问题,而是你的内部代码。
只需调试您的应用程序或执行if-else块,您就会发现什么值为null。如果元组参数出现问题,您可以documents.filter (x -> x != null).map (...)
过滤RDD中所有可为空的值