2

尝试在 Spark 文档中运行此示例。得到下面的错误。使用 Java 版本的示例也会出现相同的错误。我得到错误的确切行是:

idfModel = idf.fit(featurizedData)


Py4JJavaError: An error occurred while calling o1142.fit.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 7 in stage 256.0 failed 1 times, most recent failure: Lost task 7.0 in stage 256.0 (TID 3308, localhost): java.lang.NullPointerException

我正在使用的数据是通过读取具有几千条记录的 Json 文件获得的。在Java中,我正在按如下方式读取文件:

DataFrame myData = sqlContext.read().json("myJsonFile.json");

其余代码与上面链接的示例完全相同。featureizedData 是一个有效的 DataFrame,我打印了它的架构和第一个元素,一切看起来都符合预期。我不知道为什么会出现空指针异常。

4

1 回答 1

0

问题是你有nan一些列的文本字段。

由于问题标记为PySpark,请使用

data_nan_imputed = data.fillna("unknown", subset=["text_col1", .., "text_coln"])

如果您想要将多个 text_col 组合成一个 text_col,这是一个很好的做法。否则,您也可以使用

data_nan_dropped = data.dropna()

摆脱nan列,然后适应这个数据集。希望它会奏效。

对于scalajava使用类似的nan填充语句。

于 2018-11-22T12:44:39.567 回答