尝试在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");
其余代码与上面链接的示例完全相同。featurizedData是一个有效的DataFrame,我打印了它的模式和第一个元素,一切看起来都如预期。我不知道为什么我会得到一个空指针异常。
问题是您将nan
作为某些列的文本字段。
由于问题标记有PySpark
,因此使用
data_nan_imputed = data.fillna("unknown", subset=["text_col1", .., "text_coln"])
如果您有多个text_col,希望将它们组合成一个text_coll,那么这是一个很好的做法。否则,您也可以使用
data_nan_dropped = data.dropna()
去掉CCD_ 5列,然后拟合该数据集。希望它能起作用。
对于scala
或java
,使用类似的nan
填充语句。