Spark Machine Learning:RDD变得难以理解

时间:2018-03-19 00:05:00

标签: scala apache-spark apache-spark-mllib apache-spark-ml

我正在尝试将Vector数据类型提供给Spark中名为public void cadastrarUsuario (View view) { if (validacao()) Toast.makeText(CadastroActivity.this, "Preencha o campo " + validar, Toast.LENGTH_SHORT).show(); } public boolean validacao() { String txtNome = campoNome.getText().toString(); String txtSenha = campoSenha.getText().toString(); String txtEmail = campoEmail.getText().toString(); validar = txtNome.isEmpty() ? "Nome" : txtEmail.isEmpty() ? "Email" : txtSenha.isEmpty() ? "Senha" : "OK"; Boolean check = true; if(validar.equals("OK")) check = false; return check; } 的{​​{1}}函数。当mllib返回包含所需Vector的“result”列的Word2Vec时,需要一些代码。最后,当代码在Spark中成功运行时,我尝试使用Word2VecDataFrame一些代码行。 Spark在此步骤崩溃,并出现以下错误:.foreach。如果删除println命令,代码将正常运行。我尝试使用RDD的示例方法,但出现了相同的Spark错误。不知何故,RDD变得难以理解。

要了解此ML任务的背景,请参阅此link

NullPointerException

1 个答案:

答案 0 :(得分:1)

很可能,您的一个输入具有空字段。 Spark懒惰地评估,所以在你运行take(3)之前,你实际上没有进行任何计算,这就是为什么没有那条线就没有错误的原因。

此外,将RDD转换为DataFrame然后应用转换器会更典型(也可能更快)。